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 を返す;