2013-05-03 69 views
2

好吧,所以我有點困惑。這裏是我現在的代碼,但我只是發現e修飾符已被棄用。我如何將它轉換爲preg_replace_callback()?我還沒有弄明白。如何將preg_replace e轉換爲preg_replace_callback?

$post = preg_replace("/\[code\]([^])\[\/code\]/e", 'code(\'$1\')', $post); 
+0

這個問題已經被添加到[堆棧溢出正則表達式FAQ](http://stackoverflow.com/a/22944075/2736496),在「修飾符」下。 – aliteralmind 2014-04-10 00:38:38

回答

6

如果沒記錯,preg_replace_callback()給你一個$matchpreg_match()結果作爲輸入,並期望最終結果爲輸出。所以你需要編寫一個函數返回例如"code('{$match[1]}')"

它可以是內聯函數,自然,如果PHP 5.3是一個選項:

preg_replace_callback($regex, function($match) { 
    // do stuff 
    return $stuff; 
}, $subject); 
+0

非常感謝,它幫助了很多。我會接受,當它讓我。 – Jake 2013-05-03 21:06:06

相關問題