今天一个网友找到,告知他的ECSHOP网站好久没有登录,之前是好好的,这次登入后台登入页面的时候有提示”Deprecated: preg_replace()”系列的报错问题,让我帮助解决掉。对于ECSHOP程序并没有实际使用过,但是可以肯定的国内中文B2C网站大部分都会用这类程序来做。
原因应该是虚拟主机商调整服务器默认PHP版本有一定的关系,因为知道ECSHOP支持PHP版本较低。这里我暂时不去调整PHP版本,直接从页面代码中调整试试看。
解决方法:
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);
然后保存后再刷新页面,可以看到提示错误解除掉。