您的位置:首页 > 编程语言 > PHP开发

PHP中文繁简转换-繁体-简体

2013-07-26 12:45 2421 查看
项目中需要搜索简体字或者繁体字 都能够搜到相应的内容,搜索用的又是SPHINX,没法在搜索中修改程序,只能在搜索之前的关键字做出修改了。

于是想到将搜索的关键字不论是简体还是繁体 一律转换成繁体 ,然后在对内容进行搜索。

由于项目网站是繁体的,所以这样做,但如果真要搜简体的内容,就搜不到了~

网上大多数的函数都需要一个TABLE转换表,但没有找到。。不过还是通过坚持不懈的努力找到了一个:

地址:https://github.com/grick/auto-tag-slug/blob/master/class.Chinese.php

使用起来还是很方便的,里面有DEMO。

不过我需要使用的是 UTF8中文字转换为BIG5繁体字再转换为UTF8繁体字

这个过程中 ,直接将 UTF8转换成BIG5会出错。。可能简繁转换还是GB2312到BIG5会好些吧

于是我的流程是这样的:

private function iconvKey($wd)
{
if (empty($wd))  return '';

# 加载转换类
if (!class_exists('Chinese')) {
loader::lib('Chinese', 'search');
}

if ( is_dir( dirname(__FILE__) . '/../lib/chinese/config/') ) {
$table = dirname(__FILE__) . '/../lib/chinese/config/';
}

$chs = new Chinese('UTF8', 'GB2312', $wd, $table );
$str = $chs -> ConvertIT(); # GB2312
$chs = new Chinese( 'GB2312', 'BIG5', $str, $table );
$str = $chs -> ConvertIT(); # BIG5
$chs = new Chinese( 'BIG5', 'UTF8', $str, $table );
return $chs -> ConvertIT();
}


要是有更好更简便的方式来转换、求赐教~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息