我正在做一个旧项目工作并获得大量这些:
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead
看第74行:
$str = preg_replace('/\&\#([0-9]+)\;/me', "code2utf('\\1',{$lo})",$str);
如何将其转换为使用新回拨?
答案 0 :(得分:2)
轻松。
$str = preg_replace_callback('/&#(\d+);/', function($m) use ($lo) {
return code2utf($m[1],$lo);
}, $str);
这里重要的是use ($lo)
,因为它允许您将$lo
变量“导入”回调。
我还清理了你的正则表达式 - 太多的反斜杠;)