php汉字转拼音 字库型

/*
*函数说名 $str 传入汉字
* $charset 编码
* $ishead 返回首字母
*/
function
GetPinyin($str,$charset="utf-8",$ishead = 0) { $restr = ''; $str = trim($str); if($charset=="utf-8"){ $str=iconv("utf-8","gb2312",$str); } $slen = strlen($str); $pinyins=array(); if ($slen < 2) { return $str; } $fp = fopen('pinyin.dat', 'r'); //设置字库路径 while (!feof($fp)) { $line = trim(fgets($fp)); $pinyins[$line[0] . $line[1]] = substr($line, 3, strlen($line) - 3); } fclose($fp); for ($i = 0; $i < $slen; $i++) { if (ord($str[$i]) > 0x80) { $c = $str[$i] . $str[$i + 1]; $i++; if (isset($pinyins[$c])) { if ($ishead == 0) { $restr .= $pinyins[$c]; } else { $restr .= $pinyins[$c][0]; } } else { $restr .= "_"; } } else if (preg_match("/[a-z0-9]/i", $str[$i])) { $restr .= $str[$i]; } else { $restr .= "_"; } } return $restr; }

字库下载地址:链接: http://pan.baidu.com/s/1qWqBGlu  密码: 58gj

posted @ 2014-01-01 23:13  JasonBao  阅读(317)  评论(0编辑  收藏  举报