能实现常用汉字的转换,生僻汉字会被替换成下划线_
需要一个拼音库,跟脚本放在同一目录下,在附件里。<?php <br />
//示例<br>
echo GetPinyin("魍魉");<br>
<br>
/**<br>
* 汉字转拼音<br>
* @param string $str 待转换的字符串<br>
* @param string $charset 字符串编码<br>
* @param bool $ishead 是否只提取首字母<br>
* @return string 返回结果<br>
*/<br>
function GetPinyin($str,$charset="utf-8",$ishead = 0) {<br>
$restr = '';<br>
$str = trim($str);<br>
if($charset=="utf-8"){<br>
$str=iconv("utf-8","gb2312",$str);<br>
}<br>
$slen = strlen($str);<br>
$pinyins=array();<br>
if ($slen
return $str;<br>
}<br>
$fp = fopen('pinyin.dat', 'r');<br>
while (!feof($fp)) {<br>
$line = trim(fgets($fp));<br>
$pinyins[$line[0] . $line[1]] = substr($line, 3, strlen($line) - 3);<br>
}<br>
fclose($fp);<br>
<br>
for ($i = 0; $i
if (ord($str[$i]) > 0x80) {<br>
$c = $str[$i] . $str[$i + 1];<br>
$i++;<br>
if (isset($pinyins[$c])) {<br>
if ($ishead == 0) {<br>
$restr .= $pinyins[$c];<br>
} else {<br>
$restr .= $pinyins[$c][0];<br>
}<br>
} else {<br>
$restr .= "_";<br>
}<br>
} else if (preg_match("/[a-z0-9]/i", $str[$i])) {<br>
$restr .= $str[$i];<br>
} else {<br>
$restr .= "_";<br>
}<br>
}<br>
return $restr;<br>
}
pinyin.zip ( 19.67 KB 下载:520 次 )
AD:真正免费,域名+虚机+企业邮箱=0元