在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);