解决ecshop在php5.5环境上报错方法

2016-09-07 22:02 来源:www.chinab4c.com 作者:ecshop专家

服务器环境php大家用的版本不断提高,Ecshop没有来得及修改那么及时。兼容性有问题,有点淘汰了。

在php5.5上安装Ecshop出现报错:
 

Only variables should be passed by reference

php 5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了

$tag_sel = array_shift(explode(' ', $tag));

改成:

$tag_arr = explode(' ', $tag);  $tag_sel = array_shift($tag_arr);

 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
 

修改

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

找到  cls_template.php

$out = "<?php \\n" . '$k = ' . preg_replace_callback("/(\\'\\\\$[^,]+)/e" , "stripslashes(trim('\\\\1','\\''));", var_export($t, true)) . ";\\n";

其他页面如果遇此报错,以此类推修改。以上教程仅提供参考.

(责任编辑:chinab4c)