【问题标题】:How to write on a new line in a text file using PHP?如何使用 PHP 在文本文件的新行上写入内容?
【发布时间】:2014-09-03 09:28:36
【问题描述】:

我正在尝试使用 PHP 写入文本文件。每个 $result 字符串必须在 txt 文件中的新行上,但是当我键入时,所有 $result 字符串都在同一行上。有什么问题?

这是我的代码:

$result=date("Y.m.d").'!'.$_POST['name'].'!'.$_POST['price'].'!'.$selectedGroup."\n";
file_put_contents('data.txt', $result,FILE_APPEND)

【问题讨论】:

    标签: php file text line


    【解决方案1】:

    使用PHP_EOL预定义常量:

    file_put_contents('data.txt', $result . PHP_EOL, FILE_APPEND);
    

    来自manual

    PHP_EOL(字符串)

    此平台的正确“行尾”符号。

    自 PHP 4.3.10 和 PHP 5.0.2 起可用

    要测试您的输入,您可以尝试使用file() 输出文件数据(它应该正确确定行分隔符):

    print_r(file('data.txt'));
    

    如果它包含多个元素,那么你的行是分开的。

    【讨论】:

    • 我相信他的问题在于他对结果的验证,而不是实际的生成。
    • 它正在工作,但它在文件的第一行创建了一个空行。如何避免?
    • @Montoolivo 它可能已经存在“换行符”。此代码不应产生前行分隔符。如果可以,请尝试在新创建的文件上进行测试。
    【解决方案2】:

    问题是您的编辑器(Windows 记事本?)没有将\n 视为新行。

    那里有一种新的线

    windows: \r\n
    
    linux/unix: \n
    
    mac: \r
    

    【讨论】:

    • @Montoolivo 然后应该有设置换行类型的选项。
    【解决方案3】:

    您如何验证结果?您是否在编辑器中打开文件?如果您在 Windows 上执行此操作,请注意某些编辑器会将“\r\n”显示为新行,而将“\n”视为空格或直接忽略它。

    【讨论】:

    • 您需要知道谁是您生成的文件的目标受众。您可能需要 Unix 版本“\n”,而不是 windows 版本的换行符。
    猜你喜欢
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    • 2014-03-21
    • 2022-01-09
    相关资源
    最近更新 更多