【问题标题】:Line break not working when writing to text file in PHP在 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(疯狂的盒子)

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

【问题讨论】:

    标签: php fopen text-files fwrite


    【解决方案1】:

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

    $stringData = "Floppy Jalopy" . PHP_EOL;
    

    PHP Constants

    【讨论】:

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

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

    【讨论】:

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

    您的代码运行良好。

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

    【讨论】:

      【解决方案4】:

      。 PHP_EOL;将普遍适用

      【讨论】:

      • 这似乎在重复this existing answer
      • 这在我的情况下不起作用。接受的答案有效。 +1 票
      猜你喜欢
      • 2011-06-19
      • 1970-01-01
      • 2011-09-02
      • 1970-01-01
      • 1970-01-01
      • 2013-11-28
      • 2017-04-01
      相关资源
      最近更新 更多