file_put_contents和新行帮助

jim*_*jim 32 php

我有一个我正在写的文件,我无法让file_put_contents在新行上追加下一个条目,即使在换行符之后也是如此.我错过了什么?我在一台Windows机器上.

$file = 'test.txt';
$message = "test\n\n";
file_put_contents($file, $message, FILE_APPEND);
Run Code Online (Sandbox Code Playgroud)

Mat*_*ieu 89

尝试

$file = 'test.txt';
$message = "test".PHP_EOL;
file_put_contents($file, $message, FILE_APPEND);
Run Code Online (Sandbox Code Playgroud)

要么

$file = 'test.txt';
$message = "test\r\n";
file_put_contents($file, $message, FILE_APPEND);
Run Code Online (Sandbox Code Playgroud)

  • @RoboRobok 的问题是关于 `\n` 不能在 Windows 机器上工作,`PHP_EOL` 或 `\r\n` 在这里似乎非常合适。这不是关于“大多数情况” (4认同)

小智 19

对于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);
Run Code Online (Sandbox Code Playgroud)

  • 这个答案需要更多的爱.这解决了我的问题. (2认同)

bco*_*sca 10

你是如何查看内容的$file?如果您使用记事本,则无法看到\n.

  • \ r \n而不是\n (9认同)

Ray*_*iez 5

只要给出一个正常的新行就可以了

$file = 'test.txt';
$message = "test
";
file_put_contents($file, $message, FILE_APPEND);
Run Code Online (Sandbox Code Playgroud)