PHP如何在没有HTML标记的情况下回显

时间:2012-09-11 17:51:35

标签: php tags echo

我有一种系统,每个人都可以输入任何他想要的东西。但是,它们似乎也可以使用< img SRC="..."/ >< a href="..." >< /a >等标签。

PS:标签之间有空格,否则此网站的行为就像是网址,图片等。我的意思是没有空格,如果你还没想到的话。] < / p>

你怎么能完全阻止这个?例如,如果有人在<h1>Hello</h1>中输入文字不会变大,但只会显示&lt; h1&gt;你好&lt; / h1&gt; (没有课程空间)。

如果无法做到这一点,请给我一个替代方案。

6 个答案:

答案 0 :(得分:5)

要使HTML显示为书面形式,您需要“转义”特殊字符&amp;,&lt;和&gt;使用htmlspecialchars()

或者,您可以删除所有代码并使用strip_tags()

显示剩余的文字

答案 1 :(得分:2)

您可以尝试:

echo htmlspecialchars('<a href="http://www.google.com">Google</a>');

更多信息here

答案 2 :(得分:1)

只需在要打印的字符串上使用htmlentities

答案 3 :(得分:1)

使用htmlspecialchars_decode()函数。它对我来说很好......

使用指南

带代码的文字

<Reference Include="System.Net.Http"/>

输出:

关于Lorem Ipsum的参考网站,提供有关其来源的信息,以及随机Lipsum生成器。

答案 4 :(得分:0)

特殊的charcaters或标签被视为不同的元素。 在将数据插入数据库之前,您可以使用 htmlspecialcharacters($ string_to_be_inserted)来转义html标记。

将删除所有html标记,并且只将文本插入数据库中。

希望这会有所帮助

答案 5 :(得分:0)

您还可以使用HTMLPurifier从用户输入中删除不需要的HTML标记