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

goo*_*ing 1 html php

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

mar*_*rio 5

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

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

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

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