'\ n'不能用于.txt文件创建+ php

时间:2010-11-25 19:21:48

标签: php

我有一个包含以下代码的php页面

$ourFileName = "testFile.txt";
$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
fwrite($ourFileHandle, "Tracy Tanner1\n");
fwrite($ourFileHandle, "Tracy Tanner2\n");
fclose($ourFileHandle);

testFile.txt内容看起来像

Tracy Tanner1 Tracy Tanner2

但它不像

Tracy Tanner1 
Tracy Tanner2

我该如何解决?

6 个答案:

答案 0 :(得分:8)

尝试以与记事本不同的方式打开它,可以处理* nix换行符。那,或者改为写\r\n

答案 1 :(得分:6)

@Linto P D:加入\r -

<?php
$ourFileName = "testFile.txt";
$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
fwrite($ourFileHandle, "Tracy Tanner1\r\n");
fwrite($ourFileHandle, "Tracy Tanner2\r\n");
fclose($ourFileHandle);
?>

答案 2 :(得分:2)

我认为您特别需要使用\r\n作为换行符。

答案 3 :(得分:1)

您的代码正是您所描述的应该执行的操作。所以问题完全在于解释文件的应用程序。 PHP在Windows上自动输出"\r\n"而不是"\n",因此您可能在* nix服务器上创建该文件,然后在Windows上使用不支持"\n"换行符的编辑器打开它。

"line\n"是在PHP中编写一行的正确方法,因为它尊重当前平台的默认换行符。通过使用"\r\n",您将破坏Unix平台的文件,并且在Windows上运行脚本时可能也会遇到问题。

使用正确读取所述换行符的编辑器,或将文本文件从* nix传输到Windows时转换文本文件。

答案 4 :(得分:1)

当你想要换行时我会使用PHP_EOL。这将确保应用程序应与跨平台兼容。

这应该有效:

fwrite($ourFileHandle, 'Tracy Tanner1' . PHP_EOL);

答案 5 :(得分:0)

怎么样:

fwrite($ourFileHandle, 'Tracy Tanner1'."\n");

确保对\n的文本和双引号使用单引号。

有效吗?