PHP将汉字转为拼音
没什么难度,最大的难点应该是需要有一个汉字-拼音库。
<?php function spell($str, $ishead=0){ $restr = ''; $str = trim($str); $slen = strlen($str); if($slen < 2){//若长度小于2则不是汉字 return $str; } /* .dat文件内格式为 啊`a 阿`a 埃`ai */ $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; } ?>
附汉字-拼音库下载
欢迎各位指点!