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 值会替换匹配到的内容


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM