转义字符串中的某些html标记

kee*_*ing 8 php

我需要转义所有的html标签,但有一些例外,如:<b>,<font>等

例如:

 Hello <b>world</b>. How are <span>you</span>?
Run Code Online (Sandbox Code Playgroud)

将导致:Hello world.你是如何<span>的</ span>

Dun*_*zzz 4

根据我的经验,操作某些 HTML 标签的最佳方法是使用 DOM 解析器,例如HTML purifier,但是这可能设置起来有点棘手,甚至对您的应用程序来说有点大材小用。如果我要再次执行这一切,我会使用不同的格式(例如 wiki 格式或 bb 代码)而不是 HTML,这样您就可以将自己的简单标签转换为 HTML,并且可以完全控制输出。

回到手头的问题,一个快速的解决方案是使用strip_tags()并传递标签白名单的第二个参数 - 尽管这对于输出 HTML 来说并不是 100% 完美/安全,所以从长远来看你应该使用DOM 解析器或不允许 HTML 输入。

  • 我不想剥离标签,我想逃避它们。看看我的例子,span标签仍然存在,但它的转义含义是 &lt;span&gt; 将显示 (4认同)