在PHP中编写一个新的文件
我的代码:
$i = 0; $file = fopen('ids.txt', 'w'); foreach ($gemList as $gem) { fwrite($file, $gem->getAttribute('id') . '\n'); $gemIDs[$i] = $gem->getAttribute('id'); $i++; } fclose($file);
出于某种原因,它将\n
写为一个string,所以文件如下所示:
40119\n40122\n40120\n42155\n36925\n45881\n42145\n45880
从谷歌它告诉我使用\r\n
,但\r
是一个回车,这似乎不是我想要做的。 我只是想让这个文件看起来像这样:
40119 40122 40120 42155 36925 45881 42145 45880
谢谢。
将'\n'
replace为"\n"
。 当您使用'
时,转义序列不被识别。
看手册 。
对于如何写行结束的问题,请参阅这里的注释。 基本上,不同的操作系统对于行结尾有不同的约定。 Windows使用“\ r \ n”,基于unix的操作系统使用“\ n”。 你应该坚持一个惯例(我select了“\ n”)并以二进制模式打开你的文件( fopen
应该得到“wb”,而不是“w”)。
使用根据操作系统输出\r\n
或\n
PHP_EOL
。
自PHP 4.3.10和PHP 5.0.2以来,PHP_EOL是一个预定义的常量。 请参阅手册发布:
使用这将节省您跨平台发展的额外编码。
IE浏览器。
$data = 'some data'.PHP_EOL; $fp = fopen('somefile', 'a'); fwrite($fp, $data);
如果你通过这两次循环,你会看到'somefile':
some data some data
你也可以使用file_put_contents()
:
file_put_contents('ids.txt', implode("\n", $gemList) . "\n", FILE_APPEND);