我需要转义所有html标签,但有一些例外,例如:< b&gt ;,< font>等
例如:
Hello <b>world</b>. How are <span>you</span>?
将导致:Hello world 。你是怎么&lt; span&gt;你&lt; / span&gt;
答案 0 :(得分:4)
根据我的经验,在我的经验中操作某些HTML标记的最佳方法是使用像HTML purifier这样的DOM解析器,但是这对于您的应用程序来说设置甚至有点过分可能有点棘手。如果我要再做一遍,我会使用不同的格式(如wiki格式或bb代码)而不是HTML,这样你就可以将自己的简单标签转换为HTML,并且你可以完全控制输出。
回到手头的问题,快速解决方案是使用strip_tags()
并传递标签白名单的第二个参数 - 虽然这不是100%完美/安全的HTML,所以从长远来看,你应该使用DOM解析器或不允许HTML输入。
答案 1 :(得分:2)
答案 2 :(得分:0)
需要一个简单的逻辑来实现,如下所示:
1.创建一个你不想逃避的html标签列表。
2.拦截html标签(打开或关闭)。
3.如果列表中没有标签,请用&amp; lt;替换周围的尖括号(&lt;&gt;)。和&amp; gt;,即&lt; mytag&gt;成为&amp; lt; mytag&amp; gt;
4.对html文件中的所有标记重复此操作。
答案 3 :(得分:-1)
php有一个函数strip_tags
,我认为它正是您正在寻找的here