使用除<b> </b>和<i> </i>之外的htmlspecialchars

时间:2011-12-11 03:09:02

标签: php html

我想在用户的textarea上使用htmlspecialchars,但我希望他允许使用粗体和斜体。我怎么能不在这些标签上使用htmlspecialchars?

2 个答案:

答案 0 :(得分:5)

使用比抱歉更安全的方法。那是你首先应用htmlspecialchars,然后非常有选择地撤消它/将你的两个标签列入白名单:

 $html = htmlspecialchars($html);
 $html = preg_replace('#&lt;(/?[bi])&gt;#', '<$1>', $html);

只有当这些标签只包含那些确切的两个字符串,没有额外的属性时才有效。然而,没有任何安全性或一致性问题(除了这个简短版本没有声明平衡标签,ooops)。

如果您需要更复杂的规则,那么您应该注意HTMLPurifier

答案 1 :(得分:-2)

我喜欢使用tinyMCE jquery插件来做这种事情。

http://www.tinymce.com/tryit/jquery_plugin.php

希望有所帮助。