2
好吧,所以我有點困惑。這裏是我現在的代碼,但我只是發現e
修飾符已被棄用。我如何將它轉換爲preg_replace_callback()
?我還沒有弄明白。如何將preg_replace e轉換爲preg_replace_callback?
$post = preg_replace("/\[code\]([^])\[\/code\]/e", 'code(\'$1\')', $post);
好吧,所以我有點困惑。這裏是我現在的代碼,但我只是發現e
修飾符已被棄用。我如何將它轉換爲preg_replace_callback()
?我還沒有弄明白。如何將preg_replace e轉換爲preg_replace_callback?
$post = preg_replace("/\[code\]([^])\[\/code\]/e", 'code(\'$1\')', $post);
如果沒記錯,preg_replace_callback()
給你一個$match
從preg_match()
結果作爲輸入,並期望最終結果爲輸出。所以你需要編寫一個函數返回例如"code('{$match[1]}')"
。
它可以是內聯函數,自然,如果PHP 5.3是一個選項:
preg_replace_callback($regex, function($match) {
// do stuff
return $stuff;
}, $subject);
非常感謝,它幫助了很多。我會接受,當它讓我。 – Jake 2013-05-03 21:06:06
這個問題已經被添加到[堆棧溢出正則表達式FAQ](http://stackoverflow.com/a/22944075/2736496),在「修飾符」下。 – aliteralmind 2014-04-10 00:38:38