首页站内杂志技术文摘
文章内容页

帝国7.5在PHP7+增加栏目生成拼音乱码的解决方法

  • 作者:雨祺
  • 来源: 原创
  • 发表于2022-12-02 20:33:32
  • 被阅读0
  • 在php7+的地盘,PHP4与5的语法风格中的一些东西将被被抛弃。例如构造函数的用法,会在新的PHP7+中完全被抛弃。PHP7+将会提示一个: E_DEPRECATED的错误提示。翻遍帝国cms7.5的源代码,帝国cms的编码转换文件e/class/doiconv.php,有多处不适应php7+。可能受影响的模块:1,php7.5版本下支付宝支付提示:调试错误,请回到请求来源地,重新发起请求。错误代码 ILLEGAL_SIGN。2,帝国cms7.5php7.1以上全站搜索搜不到任何数据。3,帝国自带的首字母函数 GetInfoZm($hz) 使用PHP7.0以上无法正常使用。4,php7.1环境 ,增加栏目生成拼音乱码解决。5,新安装7.5使用php7.*环境,会员注册,重发激活邮件,找回密码,发送邮件均报错。

    本着少改的原则,提出如下修改办法---
    1 查找     function Chinese($dir='./')
    修改为
    1. function __construct($dir='./'
    2 查找 
    $this->config['codetable_dir'] = $dir."../data/codetable/";
    修改为
    1. $this->config['codetable_dir'] = ECMS_PATH."e/data/codetable/"
    3 查找
    1. /* 如果编码相同,直接返回 */ 
    2. if ($source_lang == $target_lang || $source_string == ''
    3.  return $source_string; 
    4.  } 
    在其后添加:
    1. return mb_convert_encoding($source_string,$target_lang,$source_lang); 
    4 查找
    1. while(list($key,$value)=each($tmp)) 
    替换为:
    1. foreach($tmp as $key=>$value) 
    邮件发送模块,也有类似的问题。邮件发送模块 e/class/class.smtp.php
    1 查找  function SMTP() {
    修改为
    1. function __construct() { 
    1. 2查找    while(list(,$line) = @each($lines)) { 
    1. 修改为: 
    2. foreach($lines as $line){ 
    1. 3查找   
    2.  while(list(,$line_out) = @each($lines_out)) { 
    1. 修改为 
    2.  foreach($lines_out as $line_out){ 
    1. 4 查找    
    2. while(list(,$l) = @each($entries)) { 
    1. 修改为 
    2. foreach ($entries as $l){ 
    【审核人:站长】

        标题:帝国7.5在PHP7+增加栏目生成拼音乱码的解决方法

        本文链接:https://www.meiweny.cn/zazhi/zhongwangjiaocheng/137.html

        赞一下

        深度阅读

        • 您也可以注册成为美文苑的作者,发表您的原创作品、分享您的心情!

        阅读记录

          关注美文苑