在 PHP 中写入文本文件时换行不起作用

Posted

技术标签:

【中文标题】在 PHP 中写入文本文件时换行不起作用【英文标题】:Line break not working when writing to text file in PHP 【发布时间】:2011-05-10 21:45:36 【问题描述】:

我有以下测试脚本:

<?php

$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = "Floppy Jalopy\n";
fwrite($fh, $stringData);
$stringData = "Pointy Pinto\n";
fwrite($fh, $stringData);
fclose($fh);

?>

但是,当运行并打开 usign Notepad 时,数据在一行中返回,没有中断:

Floppy Jalopy(crazy box)Pointy Pinto(疯狂的盒子)

我找不到适合“疯狂盒子”的角色,但它是一个非常疯狂的盒子。什么给了!

【问题讨论】:

【参考方案1】:

最好使用PHP_EOL。这是跨平台的,因此它会自动为 PHP 当前运行的平台选择正确的换行符。

$stringData = "Floppy Jalopy" . PHP_EOL;

PHP Constants

【讨论】:

如果文件总是在运行脚本的同一平台上使用,那么使用PHP_EOL 是“最好的”。根据我的经验,大多数情况下,您创建的文件要下载、通过电子邮件发送或稍后解析 - 在所有情况下,您都需要带有 特定 换行符的文件,而不是脚本发生的平台之一继续运行。 这似乎是最佳答案。【参考方案2】:

如果要在 Windows 记事本中打开文件,必须使用 Windows 换行符:\r\n

【讨论】:

如果你在写字板中打开它,它会处理\n\r\n,就像许多其他编辑器一样,但是记事本很挑剔。【参考方案3】:

您的代码运行良好。

如果您使用的是 Windows,请使用 Notepad2 或 Notepad++。内置记事本无法处理 Unix 风格的行尾。

【讨论】:

【参考方案4】:

。 PHP_EOL;将普遍适用

【讨论】:

这似乎在重复this existing answer。 这在我的情况下不起作用。接受的答案有效。 +1 票

以上是关于在 PHP 中写入文本文件时换行不起作用的主要内容,如果未能解决你的问题,请参考以下文章

c语言中怎样在文件写入时换行?

nodejs对于文件的一些基本操作-读取文件-文件的写入-文件的拷贝-文件追加信息-读取指定路径下的所有文件路径-解决一个传入行的文本换行效果不起作用的问题- 删除文件操作

php从网站写入文件不起作用

在字节模式下打开的python中的文件中写入换行符( n)

php: 怎么让写入的字符串自动换行(在文本里面)?用fwrite()写入

delphi xe5 fastreport4.14 中文很多时换行不正确