在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错误,也可用上面的通用方法解决。
发表回复