Open source CMS php7,帝国ccms7.5在php7下需要改进的地方

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

//数据库设置

$ecms_config['db']['usedb']='mysql'; //数据库类型

if(PHP_VERSION>6.9)$ecms_config['db']['usedb']='mysqli';

或者 两句合并成一句

$ecms_config['db']['usedb']=PHP_VERSION>6.9?'mysqli':'mysql';

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

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

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){

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值