帝国CMS7.5(EmpireCMS)后台栏目生成拼音目录出现乱码的解决方法

我用帝国cms还不是特别多,最近总是遇到客户使用,由于不是太熟悉所以做一下笔记,客户用帝国cms7.2但是自从升级了帝国7.5之后,后台栏目生成拼音总是出现乱码,这个问题估计是php版本太高导致的,我用php5.6来生成拼音就没有问题。我因为用的是免费版本的帝国,估计如果是商业版这个问题应该也解决了。

帝国CMS默认的生成拼音的方法经常会有问题(帝国CMS生成拼音乱码),我已经出现了多次了。

20181121135425-768x636-2

如何解决问题,这里我们借用搜狗拼音的接口去获取转换后的结果!

第一、调用接口

首先我们要在e/class下面创建一个新的文件比如:spinyin.php,内容如下:

<?php
/**
 * 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/spinyin.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);
}

修改如下图所示

20181121141723

这样保存只有,我们在去试试,发现已经可以了。

未经允许不得转载:OZ分享-吉家大宝官方博客 » 帝国CMS7.5(EmpireCMS)后台栏目生成拼音目录出现乱码的解决方法

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

置顶文章