2016-01-06 61 views
0

我正在做的工作的老項目,並獲得一噸的這些:更換的preg_replace e修飾符

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead 

望着線74:

$str = preg_replace('/\&\#([0-9]+)\;/me', "code2utf('\\1',{$lo})",$str); 

我怎樣才能將其轉換成使用新的回電?

回答

2

很容易。

$str = preg_replace_callback('/&#(\d+);/', function($m) use ($lo) { 
    return code2utf($m[1],$lo); 
}, $str); 

這裏最重要的是use ($lo),因爲它可以讓你「進口」的$lo變量到您的回調。

我也清理你的正則表達式 - 太多的反斜槓;)

+0

好吧冷靜,得到它現在我已經看到了工作的例子。謝謝。 – Lovelock