1

我正在尝试用htmlspecialchars_decodeand解码两个特殊标签之间的字符串preg_replace,例如我的原始字符串是这样的:

other strings...[link]<a href="http://example.com" target="_blank">example</a>[/link]other strings...

我需要将所有内容转换[link][/link]为 html 原始代码。测试了这个:

    $str = preg_replace("/[link](.*)[\/link]/eisU", "htmlspecialchars_decode('$1')", $str);                 

没用!我也搜索了谷歌,但没用!

4

1 回答 1

2

您必须转义方括号,否则[link]将解释为包含字母的字符集l, i, n, k

preg_quote()如果您不确定要逃避什么,您应该使用:

preg_replace('/' . preg_quote('[link]', '/') . '(.*?)' . preg_quote('[/link]', '/') . '/eisU', ...

这也可以:

/\[link\](.*)\[\/link\]/eisU
于 2012-06-13T08:23:31.373 回答