ecshop商城php5.3版本以上的代码不兼容修改

ecshop适合一些刚开始的商城,但是由于官方的新版本3.0,还很少有人用,所以市面上多是2.7.3的版本。

只是2.7.3版本的对php版本兼容有要求,php5.3版本以上的各种显示错误。

所以就需要修改了,具体修改的代码网上也有很多了,我就不都说了。

只是简单说下几个常见的以及一个有2种修改方法的。

1: 错误提示:Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in 对应代码: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 对应代码:$tag_sel = array_shift(explode(‘ ‘, $tag)); 修改为 $tag_arr = explode(' ', $tag);$tag_sel = array_shift($tag_arr);

3:这个是很多人容易修改错误的 错误提示:Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in 对应代码: $out = "<?php \n" . '$k = ' . preg_replace("/(\'\\$[^,]+)/e" , "stripslashes(trim('\\1','\''));", var_export($t, true)) . ";\n"; 这一句有2种修改方法 其一: $out = "<?php \n" . '$k = ' . preg_replace_callback("/(\'\\$[^,]+)/", function(){return stripslashes(trim('\\1','\''));}, var_export($t, true)) . ";\n"; 但是这样会导致某些模版的调用没用,就是不显示某些数字了吧。 然后就可以修改为其二: $replacement = preg_replace_callback("/(\'\\$[^,]+)/" , function($matcher){ return stripslashes(trim($matcher[1],'\'')); }, var_export($t, true)); $out = "<?php \n" . '$k = ' . $replacement . ";\n";

4: 错误提示:Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in 对应代码: $pattern = '/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/se';$replacement = "'{include file='.strtolower('\\1'). '}'";$source = preg_replace($pattern, $replacement, $source);

修改为: $pattern = '/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/s';$replacement = function($r){return '{include file='.strtolower($r[1]). '}';};$source = preg_replace_callback($pattern, $replacement, $source);

5: 错误提示:Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in 对应代码: $val = preg_replace("/\[([^\[\]]*)\]/eis", "'.'.str_replace('$','\$','\\1')", $val); 修改为 $val =preg_replace_callback("/\[([^\[\]]*)\]/is", function(){return '.'.str_replace('$','\$','\\1');}, $val);

6: 错误提示:Strict Standards: Only variables should be passed by reference in 对应代码: $ext = end(explode('.', $tmp)); 修改为: $ext = explode('.', $tmp);$ext = end($ext);

7: 错误提示: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();

8: 错误提示:Strict Standards: Redefining already defined constructor for class alipay in 支付宝支付问题,给他们换个位置就行,其他文件也一样的。 class alipay{function __construct(){$this->alipay();}function alipay(){}

9: 时间问题Strict Standards: mktime(): You should be using the time() function instead in $auth = mktime(); 修改为: $auth = time();

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏静下来

CDN加速下通过nginx获取网站访客真实ip

image.png 我们官网后台有访客防火墙,为了统计用户的登录信息,由于网站做了全站的CDN,所以防火墙默认获取到的ip全是CDN的ip。 这样就不便于我们...

72460
来自专栏编程软文

postman从入门到精通

今天总监让我给测试同事们培训postman,使用过postman的朋友应该知道,这个简直就是前后端接口调试神器。根据平时的经验以及自己到网上看了相关的帖子,对于...

15510
来自专栏云豹直播系统开发

怎么搭建短视频系统?全套负载均衡方案

短视频系统跟直播系统有一样的特点,面向的用户群体数量较大,聚集时间点集中。比如午饭时间,晚上休闲时间。所以做好系统的负载特别重要,既能提高系统的稳定性和可用性,...

31040
来自专栏开源优测

移动测试Appium之webelement模块介绍

移动测试Appium之webelement模块介绍 前言 本文主要分析Appium Python端所提供的移动端元素操作API,其主要实现,你可以通过以下方式查...

32050
来自专栏程序员互动联盟

【答疑释惑】如何知道电脑是32位还是64位

近来在联盟中经常看到有人问64位系统与32位系统的问题。这里把相关问题几种回答下。 首先我们要明白一个常识,64位操作系统可以使用32位系统的软件,但是32位系...

31230
来自专栏向治洪

刷博客等流量

首先我们不建议刷流量,这里只是提供机械技术上的实现 -访客数量与ip无关,与cookie关,它对每个访问者给一个特定的cookie //就是说,只要清除cook...

239100
来自专栏互联网技术栈

Tair数据迁移三步走

在多机房数据迁移中,整个过程分为三个阶段:历史数据迁移阶段、redolog迁移阶段、实时复制阶段。

14530
来自专栏Laoqi's Linux运维专列

Nginx为什么比Apache 高效

什么是阻塞:就是线程在执行IO操作获取数据时,这个IO可能会需要一定的时间才能等到数据返回,然后才能接着执行下面的命令。那么,此时,这个线程的等待状态我们就把它...

32360
来自专栏MelonTeam专栏

ndk代码支持断点调试

背景 android的ndk代码编写一直被认为是很痛苦的一件事情,除了android程序员对c++的陌生外,还有一个主要原因是无法断点调试。无法断点调试很难发现...

76550
来自专栏FreeBuf

某CMS注入分析及注入点总结

Bluecms是一个地方网站的开源的cms,在很多地方性的网站上应用还是不少的,今天在逛seebug的时候看到了一个漏洞的公告。 ? 有公告但是这里还没有详情,...

22680

扫码关注云+社区

领取腾讯云代金券