PHP Line Feeds" \ n"不保存

时间:2014-07-05 13:56:53

标签: php

出于某种原因,我正在使用我的代码来打破界限,但是无法正常工作。

输出时不会破坏线条。

            $file = "availables.txt";
            $current .= $test."\n";
            file_put_contents($file, $current);

我不确定是什么问题,但我读到使用单引号(')不起作用,我必须使用双引号(“),这就是我正在使用的。

我真的找不到多少,但我确信这只是一个简单的问题:)

3 个答案:

答案 0 :(得分:2)

正如评论中所提到的,问题在于为平台选择正确的行结束符号。

核心常量PHP_EOL将为您执行此操作,允许您创建可移植代码。

  
    

正确的行结束'这个平台的象征。自PHP 4.3.10和PHP 5.0.2起可用

  

答案 1 :(得分:1)

用单引号括起来的换行字符确实不起作用,这只是因为PHP会在文件中插入退格\后跟n。这会产生ASCII / UTF-8十六进制代码0x2F0x6E,而不仅仅是0xA

使用"\n"或预定义常量PHP_EOL,它将始终包含适用于您平台的正确换行组合,这样可以解决此问题。

您在问题中发布的代码绝对没有错。那有什么不对?我的猜测是用于查看生成的文件的程序。某些损坏的Windows应用程序无法正确读取换行符,因为他们希望该文件使用Windows换行符(这可能是换行符和回车符的组合)。

您正在使用PHP,在浏览器中输出文件(无论哪个),他们都会正确处理。简单地:

<?php

header("content-type: text/plain");
echo "hello\nworld";

你会发现一切都很好。

答案 2 :(得分:-2)

您可以在双引号内写下变量,例如

$current .= "$test\n";