$TOPIC_CONTENT = preg_replace("!<code>(.+)</code>!is","<div style='color: #00FF00;
background-color: #000000; border-radius: 5px; margin: 5px;"<pre>".htmlspecialchars("$0")."</pre></div>",$TOPIC_INFO->content);
我怎样才能让它发挥作用?我不知道如何解决这个问题,我知道我目前的方式无效。
答案 0 :(得分:3)
使用preg_replace_callback
。对你的正则表达式要小心..我想你想使用.+?
而不只是.+
。通常的口头禅是“不要用正则表达式解析html”,但对于像这样简单的事情,我没有看到它的危害。
答案 1 :(得分:2)
除了tandu的答案中的preg_replace_callback
之外,您还可以使用/e
开关,并且您的替换字符串将被* e * *评估为PHP代码,并且将使用其结果。
你可以这样做:
preg_replace("!<code>(.+?)</code>!ise",
'"<pre style=\"color: #0f0; background: #000;\">" . htmlspecialchars("$1") . "</pre>"',
$string);