PHP使用换行符读取纯文本?

PHP使用换行符读取纯文本?,php,parsing,file-get-contents,plaintext,Php,Parsing,File Get Contents,Plaintext,我有一个纯文本文件(text.txt): 在我的PHP脚本中,我试图读取该文件,以便稍后对其进行解析,但当我读取该文件时,不会出现换行符,整个过程看起来就像一条长线 以下是我的PHP: ini_set('auto_detect_line_endings',true); $text = file_get_contents("test.txt"); echo $text; 这有什么不同,我在mac上使用Textedit创建纯文本文件。这是因为PHP输出时默认将HTTP内容类型头设置为“text/h

我有一个纯文本文件(text.txt):

在我的PHP脚本中,我试图读取该文件,以便稍后对其进行解析,但当我读取该文件时,不会出现换行符,整个过程看起来就像一条长线

以下是我的PHP:

ini_set('auto_detect_line_endings',true);
$text = file_get_contents("test.txt");
echo $text;

这有什么不同,我在mac上使用Textedit创建纯文本文件。

这是因为PHP输出时默认将HTTP内容类型头设置为“text/html”。换行符仍然存在(尝试查看源代码)

添加
标题('Content-Type:text/plain')到脚本的顶部。所以它看起来像:

<?php
header('Content-Type: text/plain'); 
ini_set('auto_detect_line_endings',true);
$text = file_get_contents("test.txt");
echo $text;
?>


在Chrome中查看源代码输出:

我认为这是因为文本文件中的换行符存储为“\n”,因此HTML无法识别它。 为此,您必须将所有
\n
替换为

,以便正确地回显它们

例如:

$text=str_replace("\n","<br />",$text);
$text=str\u replace(“\n”,“
,$text”);
我希望这会有帮助

编辑:

您还可以在$text周围使用
标记来按原样打印它

echo "<pre>".$text."</pre>";
例如:

$text=str_replace("\n","<br />",$text);
echo.“$text.”;

我打赌有一百万美元的新行,如果你期望浏览器,它期望html添加换行符…@Dagon即使在“查看源代码”窗口中,它仍然是一行,您希望如何付款?如果使用php函数nl2br会发生什么情况?在源窗口中看不到它们并不意味着它们不存在。另外,为什么不检查字符串是否包含
\n
?这在php中非常容易,可以使用
strpos
strstr
等函数。然后您就可以确定了。即使在视图源代码中,它们仍然是一行。请尝试添加:header('Content-Type:text/plain');在文件的顶部,我正在使用Chrome。我的理论是,它与Mac上Textedit中的换行有关。为什么不查看Textedit的首选项,看看是否有换行符?textedit没有很多首选项,所以不会花太长时间。如果没有选项,那么您的问题可能不是textedit,因为许多人使用textedit创建他们用php阅读的文件,我在google上看不到关于这个问题的任何信息。@sgroves我用一个不同的文本编辑器(升华文本2)创建了它,而且,它工作得非常好!