浏览器不读取php文件中的新行

时间:2011-06-14 20:49:59

标签: php browser

我有一个受密码保护的文本文件并使其受密码保护,我使用了密码保护程序脚本(效果很好),但它要求我在我的服务器上将文本文件重命名为.php。这很好,但是,当我在Windows上的任何浏览器中打开此文本文件时,我没有看到任何新行(我曾经看过它们)

我尝试写 - “\ n”,“\ r”,“\ r \ n”。我认为这与浏览器认为它的.php文件有关。

6 个答案:

答案 0 :(得分:7)

这是因为服务器正在发送不同的MIME类型。它现在发送text/html(PHP返回的默认类型)而不是text/plain

您的浏览器正在等待HTML。换行符就像HTML中的任何其他空格一样,因此它们对于您要执行的操作基本上没有意义。

您可以使用它来修复它:

header('Content-Type: text/plain');

请务必将其放在代码的顶部,或者至少在输出任何内容之前。

这会导致服务器发送您期望的MIME类型。

答案 1 :(得分:3)

默认情况下,PHP脚本的输出呈现为HTML,这意味着折叠了空格。如果要将其更改回文本,则需要在Web服务器中或通过Content-Type函数将header()标题设置为“text / plain”。

答案 2 :(得分:1)

那是因为浏览器会将内容视为html,而在html中,换行符只是一个空格

答案 3 :(得分:1)

我不确定我是否理解你的问题,但在两种情况下有一个解决方案:

- 您输出文字:在这种情况下,您必须使用

<br>

- 您想在文件中使用新行编写它:使用PHP-Constant

PHP_EOL

表示行尾。这将始终插入正确的中断。

答案 4 :(得分:0)

浏览器使用HTML格式化文本(当然包含在html中)

使用<br><p>

同时考虑您的文件是.php,这是您的网络服务器将其text/html

发送的正常行为

答案 5 :(得分:0)

您需要使用<br>,因为html正在浏览器中呈现。