2012-07-17 21 views
0

我有以下代碼:PHP 5.3上工作preg_replace_callback但不能在5.2.17

return preg_replace_callback("#\{gallery: '(.+?)'(?: dir: ([0-1]))?\}#i", create_function('$i', '$dir = isset($i[2]) ? 1 : 0; $oGallery = new Gallery($i[1]) ; $oGallery->PublicSide($dir);'), $string); 

的問題是,這個工程在我的本地(PHP5.3),但是當我把它上傳到我的服務器( 5.2.17)它沒有..任何想法爲什麼?似乎與單引號有關"#\{gallery: '(.+?)'(?: dir: ([0-1]))?\}#i"

+1

定義 「它不工作」?函數調用返回什麼? – 2012-07-17 04:07:33

+0

它只是返回完整的原始字符串,因爲如果它沒有找到在這種情況下任何比賽:{畫廊:「圖像/」}或{畫廊:「圖像/」目錄:1} – 2012-07-17 04:08:34

+0

你有沒有通過PHP文檔閱讀這個功能?它的行爲可能會不同於PHP 5.3和5.2.x http://php.net/manual/en/function.preg-replace-callback.php – Jessedc 2012-07-17 04:23:48

回答

2

你實際上並沒有從你的回調中返回任何東西,所以它不會做任何替換。也許你打算這樣做,而不是?

... return $oGallery->PublicSide($dir); ... 
相關問題