Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
'\n';无法在.txt文件创建中工作+;php_Php - Fatal编程技术网

'\n';无法在.txt文件创建中工作+;php

'\n';无法在.txt文件创建中工作+;php,php,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内容看起来像 特蕾西

我有一个包含以下代码的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内容看起来像

特蕾西·坦纳1特蕾西·坦纳2

但它不像

Tracy Tanner1 
Tracy Tanner2

如何修复它

我认为您特别需要为新行字符使用
\r\n

尝试使用与记事本不同的可以处理*nix新行的东西打开它。或者改为写
\r\n

@Linto p D:Add-in
\r
--


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

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

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

关于:

fwrite($ourFileHandle, 'Tracy Tanner1'."\n");
请确保对文本使用单引号,对
\n
使用双引号


它有效吗?

当你想要换行时,我会使用PHP\u EOL。这将确保应用程序应该是跨平台兼容的

这应该起作用:


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

刚刚在linux上运行良好,我想您是在windows机器上?如果是这样,请尝试\r\n而不是\n.+1…真正的解决方案是使用一个不糟糕的编辑器,而不是更改行尾。IMHOThis只会在脚本运行的系统上添加新行字符。如果脚本在Linux上运行,而他试图在Windows上打开该文件,则不会有任何帮助。@Felix Kling噢,是的,
PHP\u EOL
仅在编写日志文件(以及类似文件)时有用。我认为我对这个问题读得不够好。
fwrite($ourFileHandle, 'Tracy Tanner1'."\n");