PHP - 如何去除字符串中的HTML标签,但仍然将它们显示出来?

10
考虑使用strip_tags()函数。
strip_tags("<b>TEXT</b>");

输出:

文本

但是如果我想要抵消标签的效果,同时又想将它们显示出来怎么办?

输出:

<b>文本</b>

我需要使用 preg_replace() 吗?还是有更优雅的解决方案可用?

谢谢 :D

4个回答

20

你可以通过htmlspecialchars对字符串进行HTML编码:

htmlspecialchars("<b>TEXT</b>");

6
您可以使用htmlspecialcharshtmlentities将字符轻松转换为它们的HTML实体。请确保检查PHP手册以确定哪种方法最适合您的数据,因为这两个函数的操作略有不同。
然后,您可以使用htmlspecialchars_decodehtml_entity_decode进行反向编码 - 同样,请检查哪种方法最适合您的数据。

htmlspecialchars是这些可用函数中唯一可用的函数。 - Your Common Sense
你的意思是什么?它们都是有效的PHP函数,每个函数都有其特定用途。也许OP只需要使用htmlspecialchars函数,但这并不否定在类似情况下其他函数的有用性。 - akamike

2

您可以始终将<替换为&lt;,将>替换为&gt;,是吗?


这是否也会消除在第一次使用strip_slashes的需要? - n a
你是指@wretrOvian的strip_tags函数吗?这取决于你。 - Your Common Sense

1
你可以像下面这样使用
<textarea rows="5" cols="20"><?php echo "<b>Text<b>"; ?></textarea>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接