大鸟帝国cms用的还是很多的,但是自从升级了帝国7.5之后,后台栏目生成拼音总是出现乱码,这个问题估计是php版本太高导致的,大鸟用php5.6来生成拼音就没有问题。大鸟因为用的是免费版本的帝国,估计如果是商业版这个问题应该也解决了。
如何解决问题,这里我们借用搜狗拼音的接口去获取转换后的结果!
第一、调用接口
首先我们要在e/class下面创建一个新的文件比如:sogopinyin.php,内容如下:
<?php /** * Auth: daniao * WebUrl: https://www.vps100.net * Description: 使用搜狗接口生成拼音 **/ function c( $str ) { $ret = ""; $res = file_get_contents( "http://w.sugg.sogou.com/sugg/ajaj_json.jsp?type=getpinyin&key=" . $str ); $res_arr = explode( ",", $res ); if ( count( $res_arr ) < 6 ) { return "api is error"; } $ret = substr( explode( ",", $res )[1], 2, - 2 ); return $ret; } ?>
第二、修改connect.php
依然是在/e/class这个目录下我们找到connect.php文件然后修改。大鸟用的是帝国7.5utf版本,这个版本是4534行。其他的的什么gbk版本应该都差不多吧。
//返回拼音 function ReturnPinyinFun($hz){ global $ecms_config; include_once(ECMS_PATH.'e/class/sogopinyin.php'); //编码 //if($ecms_config['sets']['pagechar']!='gb2312') //{ // include_once(ECMS_PATH.'e/class/doiconv.php'); // $iconv=new Chinese(''); // $char=$ecms_config['sets']['pagechar']=='big5'?'BIG5':'UTF8'; // $targetchar='GB2312'; // $hz=$iconv->Convert($char,$targetchar,$hz); //} return c($hz); }
大鸟截个图如下:
这样保存只有,我们在去试试,发现已经可以了。