php7中使用preg_replace_callback()替代preg_replace()
php7中,preg_replace()不再支持"\e" (PREG_REPLACE_EVAL),需要使用preg_replace_callback()来代替。
看例子来说吧
$content = preg_replace("/{#(.+?)}/eis", '$lang[\'\\1\']', $content) ;
这是原来的代码,在php7里不能被正确执行。
$content = preg_replace_callback("/{#(.+?)}/is", function($r)use($lang){ return $lang[$r[1]]; }, $content);
这是改过之后的代码
需要注意:
1. preg_replace_callback第二个参数,callback()函数里,如果需要使用外部的变量,可以使用function callback($matchs)use($xxx){}
2. callback() 回调函数里,return 值会替换匹配到的内容
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步