我需要转义所有的html标签,但有一些例外,如:<b>,<font>等
例如:
Hello <b>world</b>. How are <span>you</span>?
Run Code Online (Sandbox Code Playgroud)
将导致:Hello world.你是如何<span>的</ span>
根据我的经验,操作某些 HTML 标签的最佳方法是使用 DOM 解析器,例如HTML purifier,但是这可能设置起来有点棘手,甚至对您的应用程序来说有点大材小用。如果我要再次执行这一切,我会使用不同的格式(例如 wiki 格式或 bb 代码)而不是 HTML,这样您就可以将自己的简单标签转换为 HTML,并且可以完全控制输出。
回到手头的问题,一个快速的解决方案是使用strip_tags()并传递标签白名单的第二个参数 - 尽管这对于输出 HTML 来说并不是 100% 完美/安全,所以从长远来看你应该使用DOM 解析器或不允许 HTML 输入。