2010-11-25 85 views
0

工作,我有一个PHP页面下面的代码' n' 不为.txt文件的创建+ 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内容看喜欢

特雷西Tanner1特雷西Tanner2

但它不涉及像

Tracy Tanner1 
Tracy Tanner2 

我该如何修复它

+1

刚跑到它精细的Linux在这里,我假设你是一个Windows机器上?如果是这样,请尝试\ r \ n而不是\ n。 – Gazler 2010-11-25 19:25:35

回答

5

@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); 
?> 
1

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

7

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

+2

+1 ......真正的解决方案是使用不吸引的编辑器,而不是改变行结束符。恕我直言 – 2010-11-25 19:36:55

1

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

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

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

0

什么:

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

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

它工作吗?

1

我想在换行时使用PHP_EOL。这将确保应用程序应该跨平台兼容。

这应该工作:

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

+1

这将只在脚本运行的系统上添加新的行字符用法。如果脚本在Linux上运行,并且他试图在Windows上打开该文件,则不会有帮助。 – 2010-11-26 00:37:20