php7 pregreplace,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 值會替換匹配到的內容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值