Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] 我来告诉你3.3的版本都改了什么、为什么要改

[复制链接]
格东站长网插件 发表于 2017-1-5 16:00:47 | 显示全部楼层 |阅读模式
本帖最后由 格东站长网插件 于 2017-1-5 18:49 编辑

这两天页面上好多与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. 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. 2、Strict Standards: Only variables should be passed by reference in /ecshop/includes/cls_template.php on line 422
  3. 3、Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /ecshop/includes/cls_template.php on line 300
复制代码
在网上可搜索到很多结果,解决方法很简单,就是把函数名字换成新的,或者按新的格式写。

ECSHOP没有人做更新的工作,大量报错都是我自己在网上搜索之后一个一个改掉的。现在DZ程序有人专门把这些不兼容的函数名字改好,省了大家多少事,应该说是很让人感激的。

(编辑说明一下:回帖中有个自动为SHOPEX家洗地的家伙,硬说ECSHOP已经有了更新版本、代码已经改好了。ECSHOP我什么版本都有,因为我偶尔也写写ECSHOP的插件。但ECSHOP能适应PHP5.4以上版本的,是PHP5.4出来很久很久以后的事,绝大部分ECSHOP网站都是自己手工修改代码,我自己当初就是。不然等ECSHOP出新版本,网店生意别做了,直接关门算了。有些人就是有无尽的破坏心,到处搅和,唯恐天下不乱。我从一开始就支持DZ官方开发人员的辛劳,对那些免费拿了DZ程序却一天到晚发泄不停抱怨不休的不知好歹的家伙见一个鄙视一次,得罪了不少怨妇,至今这些怨妇还时不时冒出来攻击我,真是见怪不怪了)

DZ3.3的修改举例:/source/function/function_discuzcode.php文件81行,代码发不出来,截图:

也就是放弃preg_replace而换成 preg_replace_callback这个了。
至于其它的一些小修改,象source/module/forum/forum_viewthread.php文件中$post['imagelist'] = $post['attachlist'] = '';这句初始化无效,因为是数组,3.3中换成$post['imagelist'] = $post['attachlist'] = array();这样写就有效了。这种小小完善有多处。
其它绝大部分文件都没变,数据表没变,模板当然也没变,以前的设置、插件啥的全都可继续用。

所以与其说3.3是新版本,不如说3.3是个补丁包。从3.1或3.2升级为3.3不需要象其它升级一样执行升级程序,只需要把这些小小修改过的文件上传覆盖。如果从3.3返回为3.2或3.1也不需要降级,换回原来的程序文件就是了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
 楼主| 格东站长网插件 发表于 2017-1-5 16:01:48 | 显示全部楼层
本帖最后由 格东站长网插件 于 2017-1-5 16:03 编辑

为什么分类只能选择求助?我明明不需要求助,不然发不成帖
回复

使用道具 举报

hajhb 发表于 2017-1-5 17:05:02 | 显示全部楼层
哈哈。真的假的啊
回复

使用道具 举报

bgy 发表于 2017-1-5 17:17:02 | 显示全部楼层
这真较的好 谢谢楼主的钻研
回复

使用道具 举报

dej.sf 发表于 2017-1-5 17:55:34 | 显示全部楼层
人家ecshop都出3.0了,支持PHP>5.6。官方支持PHP7的版本可以通过付费购买后获得更新包。不知道别乱说,ecshop靠shopex撑着比dz活的滋润多了
回复

使用道具 举报

 楼主| 格东站长网插件 发表于 2017-1-5 18:15:41 | 显示全部楼层
dej.sf 发表于 2017-1-5 17:55
人家ecshop都出3.0了,支持PHP>5.6。官方支持PHP7的版本可以通过付费购买后获得更新包。不知道别乱说,ecsh ...

3.0出在哪天,PHP5.6出在哪天?
我有告诉你我的ECSHOP是今天昨天才升级的?
还不知道别乱说,全世界就你最知道。你还能挑出啥?
回复

使用道具 举报

dej.sf 发表于 2017-1-5 18:21:43 | 显示全部楼层
格东站长网插件 发表于 2017-1-5 18:15
3.0出在哪天,PHP5.6出在哪天?
我有告诉你我的ECSHOP是今天昨天才升级的?
还不知道别乱说,全世界就 ...

嗯,你牛逼。之前格东的大号怎么不敢用了?被群喷喷惨了没脸上了?换个小号继续这里不要脸的骗小白?

ecshop是前几天有个小更新的啊,我跟你说了免费版跟商业版的ecshop东西不一样你看到了吗?商业版都到3.7了,你用的商业版么?用个免费版瞎bb。牛!
回复

使用道具 举报

民审大大 发表于 2017-1-5 18:26:54 | 显示全部楼层
1.不是preg_replace被放弃,而是不再支持e修饰符
2.改成 array();是为了兼容PHP7.1
回复

使用道具 举报

 楼主| 格东站长网插件 发表于 2017-1-5 18:28:49 | 显示全部楼层
dej.sf 发表于 2017-1-5 18:21
嗯,你牛逼。之前格东的大号怎么不敢用了?被群喷喷惨了没脸上了?换个小号继续这里不要脸的骗小白?
ec ...

去你的狗屎!
我哪个号都在用,这个号养了这么久还在填验证吗!!!
你是想说你是DZ的收费用户?不然你在对免费用户开放的安装使用版块回个狗屁帖!
ECSHOP免费收费关你狗屁事,说得好像你是ECSHOP官方似的,头上自动长角了?再说了,就算是收费版,也是SHOPEX家的,你居然把ECSHOP掺和在一起讲,你也不脸红?ECSHOP前几天更新关我屁事,我N久不去ECSHOP官方论坛了。
你以为我认不出你?把我八百年前的菜鸟老帖翻出来,然后证明我现在没有写插件的能力。尼玛你倒是有能力啊,你一出生就能力牛逼横行天下,自动为SHOPEX家洗地,自封为DZ收费用户,自豪得发光发亮,无比伟大!
你除了到处拉屎抹黑,还干过什么正经事?
回复

使用道具 举报

 楼主| 格东站长网插件 发表于 2017-1-5 18:31:53 | 显示全部楼层
民审大大 发表于 2017-1-5 18:26
1.不是preg_replace被放弃,而是不再支持e修饰符
2.改成 array();是为了兼容PHP7.1

哦,谢谢指点
这些专业的东东我不懂,没专门学过
确实就是/e这种东东就报错。另外,数组=''这样应该是没用的,要用 array();才算是初始化,不管是不是兼容都应该这样写吧?反正我写代码肯定是数组用 array();,字符串才用=''这样。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-26 16:55 , Processed in 0.026400 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表