|
<?php
$pinyins = Array();
//获取一串中文字符的拼音 ishead=0 时,输出全拼音 ishead=1时,输出拼音首字母
function GetPinyin($str,$ishead=0,$isclose=1){
global $pinyins;
$restr = "";
$str = trim($str);
$slen = strlen($str);
if($slen<2) return $str;
if(count($pinyins)==0){
$fp = fopen("./pinyin.db","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;
}
if($_GET['hanzi'])
{
echo $pinyin=GetPinyin($_GET['hanzi'],1,0);
//echo "获得的拼音是:".$pinyin;
}
?>
把附件改名成pinyin.db
把附件改名成pinyin.db
程序及汉字库 |
|
|