如何阻止file_get_contents [PHP]的结果作为HTML处理?

时间:2011-05-10 11:39:17

标签: php

我使用PHP函数file_get_contents来读取和显示某些.txt文件的内容。

如果文件的内容是HTML代码,我如何将其显示为字符串而不是将其视为HTML的页面?

我目前的代码是这样的:

<?php
$load_desc = file_get_contents(/url/of/my/file.txt);
echo "<div>$load_desc</div>"
?>

如果文件内容是纯文本,则可以正常工作,但是,例如,如果内容包含<img>标签,则会显示图像。

对不起,如果这真的很容易。我刚刚开始使用PHP。

3 个答案:

答案 0 :(得分:7)

在其上使用htmlspecialchars

<?php
$load_desc = file_get_contents(/url/of/my/file.txt);
echo "<div>" . htmlspecialchars($load_desc) . "</div>"
?>

这会将不安全的字符转换为它们的实体引用:

  • &&amp;
  • "&quot;
  • <&lt;
  • >&gt;

这意味着您可以安全地将它们注入HTML,并且标记将显示为纯文本。

答案 1 :(得分:3)

您需要将htmlspecialchars调用HTML来转义源代码。

答案 2 :(得分:0)

<?php
$load_desc = file_get_contents(/url/of/my/file.txt);
header('Content-type: plain/text');
echo "<div>$load_desc</div>"
?>

这会将所有内容显示为纯文本。但如果您需要删除标签或按原样显示标签,则可以使用strip_tagshtmlspecialchars重复使用。