(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. 端到端TVM编译器(上)
  2. Oracle的控制文件
  3. 对于白神贪心问题的感悟
  4. UML各种图总结-精华
  5. django基础1--django安装与helloworld测试
  6. Solr router 路由介绍
  7. C++派生类的构造函数和析构函数
  8. 华侨大学计算机学院2019,华侨大学计算机科学与技术学院2019年非全日制研究生复试成绩(第四批)...
  9. AndroidStudio安卓原生开发_UI高级_RecyclerView_循环复用控件_代替ListView_GridView---Android原生开发工作笔记121
  10. docker版本AWVS14
  11. ezcad旋转轴标刻参数_激光打标机软件ezcad中菜单下的旋转角度标刻2功能介绍及其操作设置...
  12. python整人代码大全_整人代码大全
  13. 尺缩钟慢之动尺收缩——思想实验推导狭义相对论(六)
  14. python爬取文库,python爬取文库ppt的简单实现
  15. 图像处理 图像相似算法aHash、dHash、pHash解析与对比
  16. 【日常】纪录一个愚蠢的问题
  17. 计算机更改开机密码快捷方法,如何对电脑的开机密码进行快速更换
  18. 苹果手机实现NTU校园网连接自动化
  19. 事务的隔离级别(附Redis的简述)
  20. 乐华娱乐IPO搁浅:王一博是旗下艺人 CMC阿里字节是股东

热门文章

  1. 360安全卫士v3.0beta3版发布!
  2. Servlet常用操作(基础)
  3. Python 抓取网页乱码问题 以及EXCEL乱码
  4. VISTA系统下装AUTOCAD 2006
  5. postgresql 修改表字段_关于一些postgresql特有的概念以及安装方法的叙述
  6. Sapera帮助文档
  7. CString类简介
  8. Spring系统学习--20180613:Spring的AOP开发说明
  9. Java中instanceof与getClass的区别
  10. javascript数据结构与算法 --- 高级排序算法