PHP使用换行符读取纯文本?
我有一个纯文本文件(text.txt): 在我的PHP脚本中,我试图读取该文件,以便稍后对其进行解析,但当我读取该文件时,不会出现换行符,整个过程看起来就像一条长线 以下是我的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
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)创建了它,而且,它工作得非常好!