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

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

  //数据库设置

  $eCMS_config[‘db’][‘usedb’]=’mysql’; //数据库类型

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

  或者 两句合并成一句

WEEX交易所已上线平台币 WEEX Token (WXT)。WXT 作为 WEEX 交易所生态系统的基石,主要用于激励 WEEX 交易平台社区的合作伙伴、贡献者、先驱和活跃成员。

新用户注册 WEEX 账户、参与交易挖矿及平台其他活动,均可免费获得 WXT 空投奖励。

点此注册 WEEX 账户,即刻领取 1,600 WXT 新用户专属空投

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

本站资源均来源于网络或网友投稿,部分资源未经测试,难免存在BUG,所有资源只限于学习研究,不得商用。如使用本站下载的资源造成任何损失或发生侵权行为,均与本站无关。如不接受本声明请勿下载!本站资源如有侵权,请联系QQ:497149677核实后立即删除!
最客资源网 » 帝国cms7.5在php7下需要改进的地方