(1)将mysql扩展的使用替换掉,改为使用mysqli或pdo(推荐使用mysqli):

从php5.5开始,mysql扩展将废弃了。

具体更改的文件在于includes/cls_mysql.php。这是个不小的工程,文件代码太长……

if (!defined('DITAN_ECS'))

{

die('Hacking attempt');

}

class cls_mysql

{

var $link_id = NULL;

var $settings = array();

var $queryCount = 0;

var $queryTime = '';

var $queryLog = array();

var $max_cache_time = 300; // 最大的

代码当中加了几个方法,用于支持事务。

(2)更改cls_image.php的gd_version()方法,将这个方法改为静态方法,并且所有调用此方法的地方,都改为静态调用。

PHP5.6开始,已经不支持不兼容的上下文调用方法,并且产生 E_DEPRECATED 错误(以前是 E_STRICT)。

更改如下:

includes/cls_images.php,(gd_version方法体添加static关键字)

/**

* 获得服务器上的 GD 版本

*

* @access public

* @return int 可能的值为0,1,2

*/

static function gd_version()

{

....

}

在好几处调用此方法的地方都改为静态调用,比如includes/cls_images.php的好几个方法在调用时使用类对象调用:

function make_thumb($img, $thumb_width = 0, $thumb_height = 0, $path = '', $bgcolor='')

{

$gd = $this->gd_version(); //获取 GD 版本。0 表示没有 GD 库,1 表示 GD 1.x,2 表示 GD 2.x

。。。

}

将其改为:

function make_thumb($img, $thumb_width = 0, $thumb_height = 0, $path = '', $bgcolor='')

{

$gd = self::gd_version(); //获取 GD 版本。0 表示没有 GD 库,1 表示 GD 1.x,2 表示 GD 2.x

。。。

}

还有includes/lib_base.php文件的gd_version函数,改为:

function gd_version()

{

include_once(ROOT_PATH . 'includes/cls_image.php');

return cls_image::gd_version();

}

其他文件代码在调用时,最好改为调用lib_base文件的gd_version的函数。可以搜索更改。

(3)更改includes/lib_main.php文件的get_dyna_libs函数,该第一行的代码:

function get_dyna_libs($theme, $tmp)

{

$ext = end(explode('.', $tmp));

。。。

}

更改为:

function get_dyna_libs($theme, $tmp)

{

$tmp_ext = explode('.', $tmp);

$ext = end($tmp_ext);

}

end方法的接受的参数必须是引用传递值,这里使用了explode方法返回值,不可以直接套用。

(4)includes/cls_template.php代码:

preg_replace方法,自PHP5.5开始 /e修饰符已经废弃,所以要使用preg_replace_callback代替。此代替有多处:

fetch_str方法:

fetch_str($source)

{

。。。

return preg_replace_callback("/{([^\}\{\n]*)}/",'self::select_replace', $source);

}

//新增的方法

private function select_replace($matches){

return $this->select($matches[1]);

}

select方法:

function select($tag)

{

。。。

$pregReplace = preg_replace_callback("/(\'\\$[^,]+)/" , function($matches){

return stripslashes(trim($matches[1],'\''));

}, var_export($t, true));

。。。

}

smarty_prefilter_preCompile方法:

$source = preg_replace_callback($pattern, function($matches){

return '{include file='.strtolower($matches[1]). '}';

}, $source);

(5)将所有类的构造函数,都去除使用类名的构造函数,保留__construct():

涉及此改动的超多,用搜索一一找到并改动吧……这个就不列举了。

ecshop 支持 php,ecshop支持PHP7的修改方法相关推荐

  1. ecshop手机端html,ECSHOP手机版本的head标题的修改方法分享

    纵览众多的网站程序,都有一个属于自己的首页标题,而且都是默认的.而我们在用别人的程序中,都会根据自己的需求进行各种修改. 众所周知,网站标题的更改对网站的seo影响非常大.如果你频繁更改网站标题,将导 ...

  2. 支持苹果IPV6 ONLY 的socket 修改方法

    首先别错误理解以为app 必须支持 ipv6 的服务端, 只需要支持 ipv6的客户端需要访问 ipv4 的服务端. 目前需要经过  NAT64 转换就能达到目的,客户端只需要支持该转换就能实现, 在 ...

  3. [ecshop 资料]设置ECSHOP支持货到付款

    设置ECSHOP支持货到付款 (2015-06-15 10:08:32) 转载▼ 标签: ecshop货到付款 ecshop支付方式 分类:ecshop教程 第一步:查看当前的配送方式是否支持货到付款 ...

  4. php全套之七,【独家首发】最新七星修改二开正米酷影视7.2完整版/支持自定义解析/支持PHP7.0及以上...

    [独家首发]最新七星修改二开正米酷影视7.2完整版/支持自定义解析/支持PHP7.0及以上 视频播放页右侧栏图片和文字在后台→系统设置→APP设置修改广告位在后台设置~第一步:上传文件/uplod.z ...

  5. 主题 支持 php 7.2,最新七星修改二开正米酷影视7.2完整版/支持自定义解析/支持PHP7.0及以上...

    [独家首发]最新七星修改二开正米酷影视7.2完整版/支持自定义解析/支持PHP7.0及以上 视频播放页右侧栏图片和文字在后台→系统设置→APP设置修改 广告位在后台设置~ 第一步:上传文件/uplod ...

  6. 咪咕代理php,【独家创业】新七星修改2开正咪咕影视7.2全版/支持自定义解析/支持PHP7.0及以上...

    资料来源说明: [独家创业]新七星修改2开正咪咕影视7.2全版/支持自定义解析/支持PHP7.0及以上 视频播放页面右侧栏图文在后台→系统设置→APP设置更改 广告设置~在后台 步骤1:上传文件/up ...

  7. Android Audio - 支持多应用同时录音_Android9.0修改方法

    支持多应用同时录音_Android9.0修改方法 修改方法 与之相关 修改方法 源码路径: sdk\frameworks\av\services\audiopolicy\managerdefault\ ...

  8. Android Audio - 支持多应用同时录音_Android8.1修改方法

    支持多应用同时录音_Android8.1修改方法 修改方法 与之相关 修改方法 源码路径: sdk\frameworks\av\services\audiopolicy\managerdefault\ ...

  9. ecshop静态、 ecshop伪静态、ecshop伪静态设置详细方法、ECSHOP静态化方法

    ecshop静态设置有两种: 服务器或虚拟主机要支持伪静态: 1.linx系统,在后台设置即可,按照提示修改文件. htaccess.txt 修改为:.htaccess 2.WIN的伪静态比较麻烦: ...

最新文章

  1. Python设计模式-解释器模式
  2. docker学习笔记(四)——Dockerfile创建自定义镜像
  3. 笔记-高项案例题-2009年上-需求管理
  4. arm-2014.05 编译三星内核错误 “not support ARM mode ‘smc 0’ ”
  5. Android 打开另一个APP,并传参
  6. C#中采用OLEDB方式来读取EXCEL文件
  7. Java 8————Collectors中的中的joining 方法和mapping方法
  8. ES迁mysql_使用kafka连接器迁移mysql数据到ElasticSearch
  9. SpringMVC @ModelAttribute注解
  10. ES6 学习笔记 (1)
  11. curl 同时发送多个请求
  12. SVN下载以及中文包安装
  13. 企业信息安全管理制度
  14. 作为一名优秀的软件测试工程师,需要具备哪些能力?
  15. 超级玛丽java版下载jar文件_java超级玛丽混搭版jar
  16. 【数据可视化】三款主流开源数据可视化工具对比:Superset、DataEase、MetaBase
  17. Linux丢包故障的解决与思路
  18. 联想小新蓝屏问题解决方法三步走!
  19. Android漏洞扫描工具Code Arbiter
  20. 周鸿祎的微创新和中国的电子书

热门文章

  1. 一道简单的多维数组取值问题
  2. Linux下的高级文件权限ACL
  3. 关于修改密码后,远程服务器项目连接不上数据库的处理办法
  4. idea 使用时的一些问题
  5. 让VMware ESXi 5.5与Windows时间服务器同步
  6. 2011 端午后,杭州支付宝
  7. jsp水果商城系统毕业设计网站成品论文
  8. 12月19日绝地求生服务器维护公告,绝地求生12月19日更新到几点 绝地求生正式服更新维护公告...
  9. 计算机科学已发展成为一门,计算机前沿技术论文
  10. java 调度器怎么调用_OpenSymphony的Quartz里的作业、调度器使用举例