解决Deprecated: preg_replace(): The /e modifier is deprecated, use

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决Deprecated: preg_replace(): The /e modifier is deprecated, use相关的知识,希望对你有一定的参考价值。

使用php5.5运行ecshop的时候出现如下错误Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in \ecshop\includes\cls_template.php on line 300

解决方法如下

打开ecshop的目录找到includes\cls_template.php 到第300行

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

替换成

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

重新运行问题以解决
官方说明http://www.php.net/manual/zh/reference.pcre.pattern.modifiers.php
ecshop2.7.3 preg_replace()怎么替换成preg_replace_callback()

以上是关于解决Deprecated: preg_replace(): The /e modifier is deprecated, use的主要内容,如果未能解决你的问题,请参考以下文章

ECSHOP如何解决DEPRECATED: PREG_REPLACE()报错

将preg_replace()改写为preg_replace_callback()

从 preg_replace 到 preg_replace_callback

关于thinkhphp3.1中废弃 preg_replace /e 修饰符

PHP7 preg_replace出错及解决办法

解决php deprecated 的问题