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的错误提示。
classfoo{
//方法名类名相同的构造函数的用法再也不兼容
functionfoo(){
echo’Iamtheconstructor’;
}
}
?>
翻遍帝国cms7.的源代码,帝国cms的编码转换文件e/class/doiconv.php,有多处不适应php7
可能受影响的模块:
支付—
搜索 —
首字母生成—-
增加栏目生成拼音乱码 —
本着少改的原则,提出如下修改措施—
针对 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){
本网站名称:创码者资源网
本站永久网址: http://www.cmzym.top/
本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
本站为非盈利网站,一切付费内容(包括但不限于会员充值,资源付费),均为用户自愿赞助,且所有资金均用于网站维护
本站资源均收录于互联网,所以不能保证每个细节都符合你的要求,也可能存在未知的BUG与瑕疵,因虚拟资源可复制特性,所以不接受任何理由的退款兑现,请阅 读本站声明和相关条款后再进行支付下载
本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长 :1326632303@qq.com 进行删除处理。
本本站采用知识共享署名-非商业性使用-相同方式共享4.0国际许可协议进行许可


















暂无评论内容