在 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 中写入文本文件时换行不起作用的主要内容,如果未能解决你的问题,请参考以下文章
nodejs对于文件的一些基本操作-读取文件-文件的写入-文件的拷贝-文件追加信息-读取指定路径下的所有文件路径-解决一个传入行的文本换行效果不起作用的问题- 删除文件操作