首页 » 开源CMS » ECShop » 正文

ECSHOP提示Deprecated: preg_replace()报错的解决方法

在PHP5.5环境下运行的ECSHOP会提示

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in…….

这个错误。出现这个报错的原因是preg_replace()函数中用到的修饰符 /e 在 PHP5.5中已经被弃用了。如果你的PHP版本恰好是PHP5.5,那你的ECSHOP肯定会显示上面的错误提示。

preg_replace()错误的解决办法:

从那段错误提示信息中可以知道需要使用preg_replace_callback来代替preg_replace,使用编辑器(如:notepad++或editplus)打开文件 includes/cls_template.php ,找到

return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);

替换为

return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source);

问题解决。

如果ECSHOP中其它页面也报类似的 preg_replace错误,也可用上面的通用方法解决。

发表评论