易寻PHP

网上搜索一大推,但是很乱,很长的一段代码,所以我用自己的方法,简单明了.大家可以试试.目前这方法用在了公司的网站开发中.

//中文汉字转拼音


function gbtopy($text, $exp = '') {
if(!$text) return '';
$text = iconv("UTF-8","GBK//IGNORE",$data); //最好先判断下编码形式再转码
$data = array();
$tmp = @file('gb-pinyin.table'); //设置正确的gb-pinyin.table文件路径
if(!$tmp) return '';
$tmps = count($tmp);
for($i = 0; $i < $tmps; $i++) {
$tmp1 = explode(" ", $tmp[$i]);
$data[$i]=array($tmp1[0], $tmp1[1]);
}
$r = array();
$k = 0;
$textlen = strlen($text);
for($i = 0; $i < $textlen; $i++) {
$p = ord(substr($text, $i, 1));
if($p > 160) {
$q = ord(substr($text, ++$i, 1));
$p = $p*256+$q-65536;
}
if($p > 0 && $p < 160) {
$r[$k] = chr($p);
} elseif($p< -20319 || $p > -10247) {
$r[$k] = '';
} else {
for($j = $tmps-1; $j >= 0; $j--) {
if($data[$j][1]<=$p) break;
}
$r[$k] = $data[$j][0];
}
$k++;
}
return implode($exp, $r);
}


gb-pinyin.table下载地址: http://pan.baidu.com/s/1o659jzs

思考机器

思考机器: 

2014-03-20 17:54:50回复

易寻PHP
易寻PHP

上天只会安排的快乐的结局。

[ 添加关注 ] [ 发私信 ]

京ICP备12040723号 关于易寻 联系我们 手机版