我正在写入一个文件,但即使在换行符之后,我也无法让
file_put_contents()
在新行上附加下一个条目。我缺少什么?我使用的是 Windows 机器。
$file = 'test.txt';
$message = "test\n\n";
file_put_contents($file, $message, FILE_APPEND);
尝试
$file = 'test.txt';
$message = "test".PHP_EOL;
file_put_contents($file, $message, FILE_APPEND);
或
$file = 'test.txt';
$message = "test\r\n";
file_put_contents($file, $message, FILE_APPEND);
对于 PHP_EOL,您可能看不到新行,因为您在编写新行后定义了行的结尾。因此,只有在将新内容添加到文本文件的最后一行后才会创建新行。
它应该这样读:
$file = 'test.txt';
$message = 'some message that should appear on the last line of test.txt';
file_put_contents($file, PHP_EOL . $message, FILE_APPEND);
您如何查看
$file
的内容?如果您使用记事本,则看不到 \n
。
只要给出一个正常的新行就可以了
$file = 'test.txt';
$message = "test
";
file_put_contents($file, $message, FILE_APPEND);
对于那些将第二个参数作为数组而不是字符串传递给 file_put_contents 的人,也可以将 PHP_EOL 作为最后一个数组元素:
file_put_contents($file, array('value 1', 'value 2', PHP_EOL), FILE_APPEND);
首先,阅读有关“new line”字符的一些内容。每个操作系统都不一样...有LF、CR、CR+LF...看看这里 在 Windows 上,您需要
CR+LF (\r\n
),正如 Mathieu 已经说过的那样。
在 Linux 上,只需要
LF(
\n
)但是,可以肯定的是,请使用
PHP_EOL
。
在使用文件时,您可能需要了解更多有关路径和目录分隔符的信息。它们也不同。使用
DIRECTORY_SEPARATOR
代替正斜杠或反斜杠 ;)