在网页中提供文本文件的内容

时间:2014-05-09 19:08:43

标签: php

我有一个PHP脚本,它接收参数并将数据从存储在互联网上的文本文件打印到屏幕上。

例如,您可以请求

http://example.com/resource.php?id=5

假设该请求是尝试访问文本文件资源,因此我继续查找文本文件的URL,阅读它,然后在页面上显示:

$f = fopen($url, "rb");
echo stream_get_contents($f);

然而格式化不正确;它缺少新线。我尝试使用r模式,但输出仍然相同。

然后我记得文本文件中的新行(\n\r\n,可能还有其他行)在HTML中不被视为换行符,所以我去了{{1 }和\r\n\n

现在新线条显示正常。但是,我注意到这里和那里有大量的空白区域,并且意识到这是因为那些特定的文本看起来像<br><this>

此时我意识到这似乎不是一个好主意,特别是因为浏览器知道如何渲染文本文件。我可以简单地将它们重定向到我猜的文本文件的URL,但我计划提供将查询多个文件以进行输入的功能,因此重定向可能无法正常工作。

如何可靠地提供文本文件中的内容?

1 个答案:

答案 0 :(得分:4)

如果您想告诉浏览器您正在提供文本而不是HTML,那么:

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