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

时间:2011-03-23 09:06:18

标签: php

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

例如:

 Hello <b>world</b>. How are <span>you</span>?

将导致:Hello world 。你是怎么&lt; span&gt;你&lt; / span&gt;

4 个答案:

答案 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