file_put_contents、file_append和换行符

2022-08-30 12:00:17

我正在编写一个PHP脚本,它将数字添加到文本文件中。我想在每行上都有一个数字,就像这样:

1
5
8
12

如果我使用 ,结果如下所示:file_put_contents($filename, $commentnumber, FILE_APPEND)

15812

如果我添加一个换行符,如 ,在每个数字之后添加空格,并在末尾添加一个空行(下划线表示空格):file_put_contents($filename, $commentnumber . "\n", FILE_APPEND)

1_
5_
8_
12_
_
_

如何获取该函数以我想要的方式将数字相加,而不添加空格?


答案 1

您是否尝试过使用PHP EOL常量?


file_put_contents($filename, $commentnumber . PHP_EOL, FILE_APPEND)

--- 添加---

我只是意识到我的文件编辑器也做了同样的事情,但不用担心,只是一个鬼字符,编辑器放在那里以表明有一个换行符你可以试试这个

A file with EOL after the last number looks like:
1_
2_
3_
EOF

but a file without that last character looks like

1_
2_
3
EOF

where _ means a space character

您可以尝试使用php解析文件内容以查看其中的内容


$lines = explode( PHP_EOL, file_get_contents($file));
foreach($lines as $line ) {
    var_dump($line);
}

...棘手


答案 2

保罗斯的答案有正确的方法,但他有一个错误。您需要的是什么:

file_put_contents($filename, trim($commentnumber).PHP_EOL, FILE_APPEND);

PHP_EOL常量确保在mac,windows和unix系统上使用正确的行结尾,修剪函数删除字符串两侧的任何换行符或空格。转换为整数将是一个巨大的错误,因为1。你最终可能会得到零,特别是因为空格或特殊字符(无论它们来自哪里...)2. id不一定需要是整数


推荐