完美解决ecshop在php5.3,ECshop在PHP5.3以上版本錯誤處理

ecshop是一套開源的商城系統,由於出現較早,很多寫法不支持較高版本的PHP,目前PHP5.2對ecshop的支持很少。

一般在高版本的PHP中,會出現一些問題,下面是一些在網上找到的答案,經過自己測試可用。

錯誤1、

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in E:\hx\wamp\www\weixin\includes\cls_template.php on line 300

1)、錯誤原因:

preg_replace() 函數中用到的修飾符 /e 在 PHP5.5.x 中已經被棄用了。

2)、解決辦法:

其實從剛才的錯誤提示信息中我們也能看出一二,它提示我們使用 preg_replace_callback 來代替 preg_replace。

所以解決方法如下:

使用記事本或其他PHP編輯軟件(如: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);

問題解決。

錯誤2、

Strict standards: Only variables should be passed by reference in E:\hx\wamp\www\weixin\includes\cls_template.php on line 423

錯誤原因:PHP5.3以上默認只能傳遞具體的變量,而不能通過函數返回值傳遞,所以這段代碼中的explode就得移出來重新賦值了

解決辦法:將$tag_sel = array_shift(explode(' ', $tag));分開寫成

$temp = explode(' ', $tag);

$tag_sel = array_shift($temp);

錯誤3:Strict standards: Non-static method cls_image::gd_version() should not be called statically in

錯誤原因:不是靜態類中的方法

解決辦法:將return cls_image::gd_version();修改為

$p = new cls_image();

return $p->gd_version();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值