这两天页面上好多与3.3的版本相关的帖子,都在问从3.2到3.3怎么升级、有什么BUG、使用中有什么毛病、担心原来的插件用不了等等。
我大致对比了一下3.1与3.3的文件(3.2也一样,文件没有全部对比,因为我并不需要PHP7和3.3),感觉3.3确实就是围绕PHP7做的调整--仅仅是调整,调整的东西就是函数的名字,而且似乎主要就是把preg_replace换成了preg_replace_callback。
为什么要换名字呢?是因为php7。貌似说过滤更严谨、代码更安全啥啥的,专业名词的说法自己去搜索,我不是专业出身,讲不清楚。
举例说明:之前我用PHP5.2,ECSHOP程序没问题,升级到PHP5.6之后,ECSHOP网店页面上不管是前台还是后台,到处报错,有时候是模板显示不出来,有时候功能正确使用,但报错的文件十几排,有时候功能不正确。主要报错象这样的:
1、You should be using the time() function instead in admin/sms_url.php on line 31 /ecshop/admin/shop_config.php on line 32
2、Strict Standards: Only variables should be passed by reference in /ecshop/includes/cls_template.php on line 422
3、Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /ecshop/includes/cls_template.php on line 300复制代码在网上可搜索到很多结果,解决方法很简单,就是把函数名字换成新的,或者按新的格式写。