《泰拉瑞亚下载-1.4.2.3版》 泰拉瑞亚服务器 - MOD模组下载

入驻泰拉战网 新手指引 - 升级 - 师徒

泰拉瑞亚合成表 泰拉卡牌 - 泰拉江湖 - 泰拉刺客

联系泰拉开发组👈进入 积分市场 - 房产交易 - 水晶获取

查看: 7884|回复: 0

[原生PHP] php7中使用preg_replace_callback()替代preg_replace()

[复制链接]

515

主题

18

回帖

5

广播

论坛版主

积分
263
泰拉
22
水晶
1
铜钥匙
0
银钥匙
0
金钥匙
0

【江湖新秀】【宝剑回鞘】【泰拉达人】【奥运选手】

发表于 2020-9-7 13:36:41 | 显示全部楼层 |阅读模式
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 值会替换匹配到的内容

我自豪的选择游芯沙盒作为主页!!!
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

关注公众号
友链申请|Archiver|手机版|小黑屋|游芯沙盒

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|陕ICP备11006283号-1

在本版发帖
关注公众号
QQ客服返回顶部