In php, if we want to obtain the first letter of Chinese characters in pinyin, we must first understand the range code of the asc code, as long as we know the upper and lower limit of this value, we can use the ord in php to get my Chinese pinyin. instance 1, the code is as follows: functionnbs... in php, if we want to obtain the first letter of Chinese characters in pinyin, we must first understand the range code of the asc code, as long as we know the upper and lower limit of this value, we can use the ord in php to get my Chinese pinyin.
Instance 1, the code is as follows:
function getFirstCharter($str) { if (emptyempty($str)) {return '';} $fchar = ord($str{0}); if ($fchar>=ord('A') && $fchar<=ord('z')) return strtoupper($str{0}); $s1 = iconv('UTF-8', 'gb2312', $str); $s2 = iconv('gb2312', 'UTF-8', $s1); $s = $s2 == $str ? $s1 : $str; $asc = ord($s{0})*256 + ord($s{1}) - 65536; if ($asc>=-20319 && $asc<=-20284) return 'A'; if ($asc>=-20283 && $asc<=-19776) return 'B'; if ($asc>=-19775 && $asc<=-19219) return 'C'; if ($asc>=-19218 && $asc<=-18711) return 'D'; if ($asc>=-18710 && $asc<=-18527) return 'E'; if ($asc>=-18526 && $asc<=-18240) return 'F'; if ($asc>=-18239 && $asc<=-17923) return 'G'; if ($asc>=-17922 && $asc<=-17418) return 'H'; if ($asc>=-17417 && $asc<=-16475) return 'J'; if ($asc>=-16474 && $asc<=-16213) return 'K'; if ($asc>=-16212 && $asc<=-15641) return 'L'; if ($asc>=-15640 && $asc<=-15166) return 'M'; if ($asc>=-15165 && $asc<=-14923) return 'N'; if ($asc>=-14922 && $asc<=-14915) return 'O'; if ($asc>=-14914 && $asc<=-14631) return 'P'; if ($asc>=-14630 && $asc<=-14150) return 'Q'; if ($asc>=-14149 && $asc<=-14091) return 'R'; if ($asc>=-14090 && $asc<=-13319) return 'S'; if ($asc>=-13318 && $asc<=-12839) return 'T'; if ($asc>=-12838 && $asc<=-12557) return 'W'; if ($asc>=-12556 && $asc<=-11848) return 'X'; if ($asc>=-11847 && $asc<=-11056) return 'Y'; if ($asc>=-11055 && $asc<=-10247) return 'Z'; return null; }
Example: echo getFirstCharter ("programmer 3aj.cn"); // The result will be output: C
Example 2: The code is as follows:
"; $ I = 0; while ($ I
= 'B0') {// start of Chinese characters $ t = getLetter (hexdec (bin2hex (substr ($ str, $ I, 2 )))); printf ("% c", $ t =-1? '*': $ T); $ I + = 2;} else {printf ("% s", substr ($ str, $ I, 1 )); $ I ++ ;}} function getLetter ($ num) {global $ limit; $ char_index = 65; foreach ($ limit as $ k =>$ v) {if ($ num> = $ v [0] & $ num <= $ v [1]) {$ char_index + = $ k; return $ char_index ;}} return-1 ;}
Tutorial URL:
You are welcome to add your _ favorites to the Favorites folder, but please keep the link for this article.