标签: php html special-characters bbcode
我使用htmlspecialchars来清理网站评论,它将<>更改为html特殊字符。但我还需要在评论中加入一些链接,就像在这里一样。 我认为像perg_replace这样的东西可以为htmlspecialchars做一个例外,例如从htmlspecialchars隐藏[LINK]<a href="...">...</a>[/LINK]。我怎么能在PHP中做到这一点?或者有什么更好的方法呢?
<>
LINK]<a href="...">...</a>[/LINK]
答案 0 :(得分:1)
我建议使用一个库来解析BBCode或类似的东西 - 一般来说,它会消毒输入本身。一个快速谷歌出现了NBBC,虽然这可能有点矫枉过正。你甚至不需要使用BBCode,除非你已经设置了它的心脏 - 有Markdown之类的完美的PHP库。
答案 1 :(得分:1)
您可以使用此代码:
$comment = preg_replace('/'.preg_quote('[link]','/').'(.*?)'.preg_quote('[/link]','/').'/eisU',"htmlspecialchars_decode('$1')", $comment);