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