汉字转拼音
需要用到一个pinyin.dat文件
function pinyin($str,$ishead=0,$isclose=1){
$str = u2g($str);//转成GBK
global $pinyins;
$restr = '';
$str = trim($str);
$slen = strlen($str);
if($slen<2){
return $str;
}
if(count($pinyins)==0){
$fp = fopen('./Public/data/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( eregi("[a-z0-9]",$str[$i]) ){
$restr .= $str[$i];
}
else{
//$restr .= "_";
}
}
if($isclose==0){
unset($pinyins);
}
return $restr;
}