2

除了我选择的一些标签之外,有什么方法可以过滤所有 html 标签<strong>, or <b>, <i>?我知道 htmlentities 可以完成这项工作,但它会过滤所有 HTML 标签。

4

2 回答 2

3

检查这个:http ://www.php.net/strip_tags

// Allow <p> and <a>
echo strip_tags($text, '<p><a>');

编辑:实际上,您所说的“过滤器”是什么意思?

于 2013-04-25T08:52:28.273 回答
1

不,没有安全的方法可以做到这一点。php 的 strip_tags 将允许您使用这些标签,但这意味着您将容易受到 xss 的攻击。为了避免这种情况,更好的方法是 kses ( http://sourceforge.net/projects/kses/ ) 是 wordpress 使用的。
此外,htmlpurifier ( http://htmlpurifier.org/ ) 是我建议的方式。

在您的上下文中,我将使用 strip_tags 仅保留我想要的标签,然后我将通过 htmlpurifier 过滤器传递结果字符串以确保我不会得到 xss'ed。

于 2013-04-25T08:59:41.993 回答