我正在编写一个PHP脚本,将数字添加到文本文件中.我想在每一行都有一个数字,如下所示:
1
5
8
12
Run Code Online (Sandbox Code Playgroud)
如果我使用file_put_contents($filename, $commentnumber, FILE_APPEND)
,结果如下:
15812
Run Code Online (Sandbox Code Playgroud)
如果我添加换行符file_put_contents($filename, $commentnumber . "\n", FILE_APPEND)
,则在每个数字后面添加空格,在末尾添加一个空行(下划线表示空格):
1_
5_
8_
12_
_
_
Run Code Online (Sandbox Code Playgroud)
我如何获得该功能以我想要的方式添加数字,没有空格?
eri*_*dal 56
您是否尝试使用PHP EOL常量?
file_put_contents($filename, $commentnumber . PHP_EOL, FILE_APPEND)
Run Code Online (Sandbox Code Playgroud)
- - 添加 - -
我只是意识到我的文件编辑器做了同样的事情,但不要担心,只是编辑放置在那里的幽灵角色,表示有换行符你可以尝试这个
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);
}
Run Code Online (Sandbox Code Playgroud)
...棘手
The*_*can 16
保罗的答案有正确的方法,但他有一个错误.你需要的是以下内容:
file_put_contents($filename, trim($commentnumber).PHP_EOL, FILE_APPEND);
Run Code Online (Sandbox Code Playgroud)
PHP_EOL常量确保使用在mac,windows和unix系统上结束的右行,trim函数删除字符串两侧的任何换行符或空格.转换为整数将是一个巨大的错误,因为1.你可能最终得到零,特别是因为空格或特殊字符(无论它们来自哪里......)2.ids不一定需要是整数
您提供的代码中没有任何内容会生成这些空格,除非$commentnumber
已经包含开始的空格。如果是这种情况,只需使用trim($commentnumber)
即可。
您的代码中也没有任何内容可以解释文件底部的空行,除非$commentnumber
可以是空字符串。如果是这种情况,并且您希望它输出数字0
,请使用intval($commentnumber)
。
当然,您只需要这两者之一。如果要保留类似字符串的内容,请使用trim()
; 如果您总是想要整数,请使用intval()
,它已经自动修剪它。
也有可能您不小心编写" \n"
了"\n"
实际代码,但在您在这里发布的代码中它是正确的。