ホームページ  >  記事  >  バックエンド開発  >  PHP での中国語の文字からピンインの最初の文字への変換に関連する問題

PHP での中国語の文字からピンインの最初の文字への変換に関連する問題

WBOY
WBOYオリジナル
2016-06-13 12:32:42729ブラウズ

PHPの中国語文字からピンインの最初の文字への問題。
プログラムを実行した後、文字列内の一部のテキストが変換できないことがわかりました。これらの単語を別々に入力すると、ピンインの最初の文字を読み上げるように直接変換できます。
これは文字列では機能しません。プログラムコードは次のとおりです:

function getfirstchar($s0){

$fchar = ord($s0{0});
If($fchar >= ord("a") および $fchar $s1 = iconv("UTF-8","gb2312", $s0);
$s2 = iconv("gb2312","UTF-8", $s1);
If($s2 == $s0){$s = $s1;}else{$s = $s0;}

$asc = ord($s{0}) * 256 ord($s{1}) - 65536;
If($asc >= -20319 および $asc If($asc >= -20283 および $asc If($asc >= -19775 および $asc If($asc >= -19218 および $asc If($asc >= -18710 および $asc If($asc >= -18526 および $asc If($asc >= -18239 および $asc If($asc >= -17922 および $asc If($asc >= -17417 および $asc If($asc >= -16474 および $asc If($asc >= -16212 および $asc If($asc >= -15640 および $asc If($asc >= -15165 および $asc If($asc >= -14922 および $asc If($asc >= -14914 および $asc If($asc >= -14630 および $asc If($asc >= -14149 および $asc If($asc >= -14090 および $asc If($asc >= -13318 および $asc If($asc >= -12838 および $asc If($asc >= -12556 および $asc If($asc >= -11847 および $asc If($asc >= -11055 および $asc null を返します。
}

関数 pinyin1($zh){

     $ret = "";  

     $s1 = iconv("UTF-8","gb2312", $zh);  

     $s2 = iconv("gb2312","UTF-8", $s1);  

     if($s2 == $zh){$zh = $s1;}

     for($i = 0; $i < strlen($zh); $i ){

         $s1 = substr($zh,$i,1);  

         $p = ord($s1); 

         if($p > 160){

             $s2 = substr($zh,$i ,2);  

             $ret .= getfirstchar($s2); 

         }その他{

             $ret .= $s1;  

         }

     }

     $ret を返す;  

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。