PHP5.5下安装配置EcShop
建议用较旧的PHP版本与EcShop搭配,比如PHP5.3,新版的PHP有很多奇奇怪怪的问题。。。
错误描述:
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in D:\xampp\htdocs\ECShop\upload\includes\cls_template.php on line 300
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in D:\xampp\htdocs\ECShop\upload\includes\cls_template.php on line 557
错误原因:
preg_replace用到的修饰符/e在php5.5已经被废弃
解决方法:
将上述语句替换成:return preg_replace_callback("/{([^\}\{\n]*)}/", function($r){return $this->select($r[1]);}, $source);
---------------------------------------------------------------------------------------------
错误描述:
Strict Standards: Non-static method cls_image::gd_version() should not be called statically in D:\xampp\htdocs\ECShop\upload\includes\lib_base.php on line 346
错误原因:
“::”调用的方法必须是static的静态方法,而原有的cls_image类的gd_version()方法缺少这个关键字。
解决方法:
两种方法任选其一:
1、将cls_image类的gd_version()前增加static,即:static function gd_version();
2、先创建cls_image类的实例,再调用gd_version()
$p = new cls_image();
//return $p->gd_version();
---------------------------------------------------------------------------------------------
错误描述:
Strict Standards: Only variables should be passed by reference in D:\xampp\htdocs\ECShop\upload\includes\cls_template.php on line 424
错误原因:
中文意思为:“传入的变量只能为引用变量”。array_shift这个函数的参数是引用传递的,php5.3以上默认只能传递具体的变量,而不能通过函数返回值来传递。
解决方法:
$tag_sel = array_shift(explode(‘ ‘, $tag));
改成:
$tag_arr = explode(‘ ‘, $tag);
$tag_sel = array_shift($tag_arr);
然后删除工程目录下的temp文件夹,重新拷贝一份原始的temp文件夹进来,再访问首页,就会发现一切正常了!
---------------------------------------------------------------------------------------------
错误描述:
Strict Standards: mktime(): You should be using the time() function instead in D:\xampp\htdocs\ECShop\upload\admin\shop_config.php on line 32
Strict Standards: mktime(): You should be using the time() function instead in D:\xampp\htdocs\ECShop\upload\admin\sms_url.php on line 31
错误原因:
PHP5.1版后调用mktime()不带参数,会弹出这个违反标准的通知。如果要不带参数调用mktime,等同于调用time(),应用其代替。
解决方法:
打开对应的文件,将
$auth = mktime();
更改为:
$auth = time();
---------------------------------------------------------------------------------------------
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。