ホームページ > バックエンド開発 > PHPチュートリアル > php_PHP チュートリアルで中国語の文字をピンイン コードに変換する

php_PHP チュートリアルで中国語の文字をピンイン コードに変換する

WBOY
リリース: 2016-07-20 11:06:28
オリジナル
1056 人が閲覧しました

php 汉字转成拼音代
function utf82gb($utfstr){ // UTF-8汉字转GBK汉字
if(function_exists('iconv')){ return iconv('utf-8',' gbk',$utfstr); }
global $UC2GBTABLE;
$okstr = "";
if(trim($utfstr)=="") return $utfstr;
if(empty($UC2GBTABLE)){
$filename = dirname(__FILE__) 。 "/gb2312-utf8.table";
$fp = fopen($filename,"r");
while($l = fgets($fp,15))
{ $UC2GBTABLE[hexdec(substr($l, 7) , 6))] = hexdec(substr($l, 0, 6));}
fclose($fp);
}
$okstr = "";
$ulen = strlen($utfstr);
for($ i=0;$i<$ulen;$i++)
{
$c = $utfstr[$i];
$cb = decbin(ord($utfstr[$i]));
if(strlen($cb )==8){
$csize = strpos(decbin(ord($cb)),"0");
for($j=0;$j < $csize;$j++){
$i++; $c .= $utfstr[$i];
}
$c = utf82u($c);
if(isset($UC2GBTABLE[$c])){
$c = dechex($UC2GBTABLE[$c]+ 0x8080);
$okstr .= chr(hexdec($c[0].$c[1])).chr(hexdec($c[2].$c[3]));
}
else
{ $okstr .= "&#".$c.";";}
}
else $okstr .= $c;
}
$okstr = トリム($okstr);
return $okstr;
}

関数SpGetPinyin($str,$ishead=0,$isclose=1){ // GBK汉字转拼音
global $pinyins;
$restr = "";
$str =rim($str);
$slen = strlen( $str);
if($slen<2) return $str;
if(count($pinyins)==0){
$fp = fopen(dirname(__FILE__) . '/pinyin.db',"r" );
while(!feof($fp)){
$line = トリム(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;
}

function getPinyin($string){ // UTF-8汉字转拼音
return SpGetPinyin(utf82gb($string) ));
}

echo getPinyin("中国WEB第一站");
?>


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445029.html技術記事 php 汉字转成拼音代码 ?php function utf82gb($utfstr){ // UTF-8汉字转GBK汉字 if(function_exists('iconv')){ return iconv('utf-8','gbk',$utfstr) ;グローバル $UC2GBTABLE; $ok...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート