2011-06-14 102 views
0

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

我试过写 - “\ n”,“\ r”, “\ r \ n”。我认为它与浏览器认为它是一个.php文件我猜。

+0

如何使用文本编辑器打开文件? – Andrew 2011-06-14 20:52:18

+0

非常感谢大家,使用
修复了它。 – Illusionist 2011-06-14 21:01:42

+0

“它需要我将我的服务器上的文本文件重命名为.php。”高度怀疑。 – 2011-06-14 21:02:51

回答

0

浏览器使用HTML格式文本(包含在过程中的HTML)

使用<br><p>

还考虑您的文件是一个.php这是一个正常的行为,你的Web服务器将发送它作为text/html

+1

不,他们没有。浏览器使用HTML来格式化HTML。浏览器使用文本来设置文本的格式,但是您必须浏览器是文本。 – 2011-06-14 21:04:14

+0

@tomalak:在接下来的几天里,我会报告你,如果你继续-1我的每个答案从我的个人资料中捕获 – dynamic 2011-06-14 21:06:08

+0

也正如你可以看到我的答案实际上回答了OP – dynamic 2011-06-14 21:07:31

3

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

0

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

+0

看到我对魔术师答案的评论。 – 2011-06-14 21:04:27

7

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

您的浏览器期待HTML。换行符与HTML中的任何其他空白区域一样,所以它们对于您尝试执行的操作而言基本上没有意义。

您可以用它来修复它:

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

务必把,在你的代码的顶部,或者至少你输出任何东西之前。

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

1

这是因为浏览器中看到的内容,HTML和在HTML换行仅仅是一个空白

1

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

- 你输出的文本:在这种情况下,你必须使用

<br> 

- 你想将它与文件中的新行写:使用PHP-恒

PHP_EOL 

这意味着行尾。这插入总是一个正确的休息。

相关问题