当前位置:首页 > 笔记 > ecms > 正文内容

帝国ccms7.5在php7下需要改进的地方

2年前 (2023-02-15)ecms6147


1. 如何方便的在php7和其他版主中自由的切换帝国cms

//数据库设置
$ecms_config['db']['usedb']='mysql';    //数据库类型
if(PHP_VERSION>6.9)$ecms_config['db']['usedb']='mysqli';


php7 有很多地方不再兼容低版本。对于帝国cms7.5来说,受影响最深的就是编码转换了。

在php7的地盘,PHP4的语法风格中的一些东西将被被抛弃。例如构造函数的用法,会在新的PHP7中完全被抛弃。PHP7将会提示一个: E_DEPRECATED的错误提示。

<?php
class foo {
  //方法名类名相同的构造函数的用法不再兼容
  function foo() {
      echo 'I am the constructor';
  }
}
?>


翻遍帝国cms7.的源代码,帝国cms的编码转换文件e/class/doiconv.php,有多处不适应php7
可能受影响的模块:
支付---

http://bbs.phome.net/ShowThread/?threadid=360357&forumid=42

搜索 ---

http://bbs.phome.net/ShowThread?threadid=360428&forumid=42

首字母生成----

http://bbs.phome.net/ShowThread?threadid=361442&forumid=13

增加栏目生成拼音乱码 ---

http://bbs.phome.net/ShowThread/?threadid=357442&forumid=42


针对 e/class/doiconv.php 文件


2.1 查找

function Chinese($dir='./')

修改为

function __construct($dir='./')

2.2 查找

$this->config['codetable_dir'] = $dir."../data/codetable/";

修改为

$this->config['codetable_dir'] = ECMS_PATH."e/data/codetable/";

2.3 查找

/* 如果编码相同,直接返回 */
        if ($source_lang == $target_lang || $source_string == '')
        {
            return $source_string;
        }

在其后添加:

  //edit by jiuhecai
        return mb_convert_encoding($source_string,$target_lang,$source_lang);

2.4 查找

while(list($key,$value)=each($tmp))

替换为:

foreach($tmp as $key=>$value)


邮件发送模块,也有类似的问题


邮件发送模块 e/class/class.smtp.php

问题表现:  http://bbs.phome.net/ShowThread/?threadid=357544&forumid=42

解决方案:
修改e/class/class.smtp.php

3.1 查找

function SMTP() {
//修改为
function __construct() {

3.2查找

while(list(,$line) = @each($lines)) {
//修改为:
foreach($lines as $line){

3.3查找 

while(list(,$line_out) = @each($lines_out)) {
//修改为
foreach($lines_out as $line_out){

3.4 查找

while(list(,$l) = @each($entries)) {
//修改为
foreach ($entries as $l){


扫描二维码推送至手机访问。

版权声明:本文由蓝博发布,如需转载请注明出处。

本文链接:https://www.blueboss.cn/p/952.shtml

“帝国ccms7.5在php7下需要改进的地方” 的相关文章

帝国cms7.5免登陆火车头发布接口及http请求字段

帝国cms7.5免登陆火车头发布接口及http请求字段

帝国cms7.5免登陆火车头发布接口及http请求字段最近在研究帝国CMS,确实非常灵活、好用,分分钟建出自己想要的网站。网站建好了,如果要采集,如何操作?帝国cms自带了采集系统,然鹅我并没有去研究,作为一名程序员还是喜欢自己写爬虫采集。自己写爬虫如何将文章发布到帝国cms,我们想到的无非两种方式...

帝国cms 列表页分页样式修改美化

帝国cms 列表页分页样式修改美化

帝国cms 列表页分页样式修改美化...

帝国cms7.5实现tagid伪静态tag的方法

帝国cms7.5实现tagid伪静态tag的方法

1、TAGS新增tagname转tagid功能,格式:“tagname=etagid+TAGSID”,即:“tagname=etagid8”相当于“tagid=8”(/e/tags/?tagname=etagid8)。2、TAGS支持按TAGID伪静态,格式和tagname格式一样,区别是tagna...

帝国CMS7.2/7.5开启SSL后台登录空白的问题解决办法

帝国CMS7.2/7.5开启SSL后台登录空白的问题解决办法

以下方法适用帝国cms7.5版本7.5版本已经有了http和https自动识别,但是因为一些疑难杂症的原因,自动识别判断的不准,后台登录也是空白,我们可以打开e/config.php查找’httptype’=>0改为’httptype’=>2即可‘httptype’=>0, 代表自...

帝国CMS模板利用php函数sys_ResizeImg裁剪图片并且配合随机图片的用法

帝国CMS模板利用php函数sys_ResizeImg裁剪图片并且配合随机图片的用法

很多朋友使用帝国CMS的采集函数sys_ResizeImg来自动裁剪标题图片大小,那么使用这个函数的时候,如果没有图片从而使用随机图片的用法,下边我总结了几个。PHP中:<img src="<?=sys_ResizeImg($r[titlepic]?$r[titlep...

帝国CMS让信息内容编号ID从1开始的方法

帝国CMS让信息内容编号ID从1开始的方法

很多同学网上下载或者购买的源码里面默认带的有数据,给内容删除后发布新内容ID数却不是从1开始了,完美主义者就会想要解决方法了,其实很简单开始清空数据的时候就应该从数据库里清理而不是删后台内容信息。让信息ID从1开始只有一个方法,那就是清空表内容,那么ID就从1开始了。所以你在使用这个方法之前,先要确...