PHP Chinese to Pinyin first letter question

Source: Internet
Author: User

PHP Simple Implementation method of <?php/* Chinese character to Pinyin first letter.    Requirements: can only be the GB2312 code table inside the text character conversion to get the string corresponding to the first letter of the pinyin uppercase.    Usage: Echo zh2py::conv (' Chinese People's Republic of China ');//chinese zhrmghg or $py = new Zh2py; echo $py->conv (' Chinese People's Republic of China ');//chinese zhrmghg*/class zh2py{//According to the Chinese Character location table//We can see from the 16-55 district is sorted by phonetic Alphabet, so we just need to judge a    The location code of a Chinese character will be able to know its pinyin initials.    The first part of the location table, sorted by phonetic alphabet. Zone 16-area 55/* ' A ' =>0xb0a1, ' B ' =>0xb0c5, ' C ' =>0xb2c1, ' D ' =>0xb4ee, ' E ' =>0xb6ea, ' F ' =>0xb7a2, ' G ' =&GT;0XB8C1, ' H ' =>0xb9fe, ' J ' =>0xbbf7, ' K ' =>0xbfa6, ' L ' =>0xc0ac, ' M ' =>0xc2e8, ' N ' =>0xc4c3, ' O ' = 0xc5b6, ' P ' =>0xc5be, ' Q ' =>0xc6da, ' R ' =>0xc8bb, ' S ' =>0xc8f6, ' T ' =>0xcbfa, ' W ' =>0xcdda, ' X ' = 0XCEF4, ' Y ' =>0xd1b9, ' Z ' =>0xd4d1 */private static $FirstTable = Array (0xb0c5, 0xb2c1, 0xb4ee, 0xb6ea, 0xB 7A2, 0xb8c1, 0xb9fe, 0xbbf7, 0xbfa6, 0xc0ac, 0xc2e8, 0XC4C3, 0xc5b6, 0xc5be, 0xc6da, 0XC8BB, 0xc8f6, 0xCBFA, 0xCDDA, 0x    CEF4, 0XD1B9, 0XD4D1,0XD7FA); private static $FirsTletter = "ABCDEFGHJKLMNOPQRSTWXYZ";    Location table Part Two, irregular, the following letter is the first letter of the phonetic alphabet in each area. From the online query, there may be some errors. Zone 56-87 private static $SecondTable = Array ("CJWGNSPGCGNEGYPBTYYZDXYKYGTZJNMJQMBSGZSCYJSYYFPGKBZGYDYWJKGKLJSW Kpjqhyjwrdzlsymrypywwcckznkyyg "," TTNGJEYKKZYTCJNMCYLQLYPYSFQRPZSLWBTGKJFYXJWZLTBNCXJJJJTXDTTSQZYCDXXHGCKBPHFFSSTYBGMXLPBYLLBHLX "," Smzmyjhsojnghdzqyklgjhsgqzhxqgkxzzwyscscjxyeyxadzpmdssmzjzqjyzcjjfwqjbdzbxgznzcpwhwxhqkmwfbpby "," Dtjzzkxhylygxfptyjyyzpszlfchmqshgmxxsxjyqdcsbbqbefsjyhwwgzkpylqbgldlcdtnmayddkssngycsgxlyzaypn "," Ptsdkdylhgymylcxpycjndqjwxqxfyyfjlejpzrxccqwqqsbzkymgplbmjrqcflnymyqmsqyrbcjthztqfrxqhxmqjcjly "," QGJMSHZKBSWYEMYLTXFSYDXWLYCJQXSJNQBSCTYHBFTDCYZDJWYGHQFRXWCKQKXEBPTLPXJZSRMEBWHJLBJSLYYSMDXLCL "," Qkxlhxjrzjmfqhxhwywsbhtrxxglhqhfnmgykldyxzpylggsmtcfbajjzyljtyanjgbjplqgszyqyaxbkysecjsznslyzh "," Zxlzcghpxzhznytdsbcjkdlzayffydlebbgqyzkxgldndnyskjshdlyxbcghxypkdjmmzngmmclgwzszxzjfznmlzzthcs "," YDBdllscddnlkjykjsycjlkwhqasdknhcsgaghdaashtcplcpqybszmpjlpcjoqlcdhjjysprchnwjnlhlyyqyywzptczg "," Wwmzffjqqqqyxaclbhkdjxdgmmydjxzllsygxgkjrywzwyclzmssjzldbydcfcxyhlxchyzjqsqqagmnyxpfrkssbjlyxy "," Syglnscmhcwwmnzjjlxxhchsyzsttxrycyxbyhcsmxjsznpwgpxxtaybgajcxlyxdccwzocwkccsbnhcpdyznfcyytyckx "," KYBSQKKYTQQXFCMCHCYKELZQBSQYJQCCLMTHSYWHMKTLKJLYCXWHEQQHTQKZPQSQSCFYMMDMGBWHWLGSLLYSDLMLXPTHMJ "," Hwljzyhzjxktxjlhxrswlwzjcbxmhzqxsdzpsgfcsglsxymjshxpjxwmyqksmyplrthbxftpmhyxlchlhlzylxgsssstcl "," Sldclrpbhzhxyyfhbmgdmycnqqwlqhjjcywjzyejjdhpblqxtqkwhlchqxagtlxljxmsljhtzkzjecxjcjnmfbycsfywyb "," Jzgnysdzsqyrsljpclpwxsdwejbjcbcnaytwgmpapclyqpclzxsbnmsggfnzjjbzsfzyntxhplqkzczwalsbczjxsyzgwk "," YPSGXFZFCDKHJGXTLQFSGDSLQWZKXTMHSBGZMJZRGLYJBPMLMSXLZJQQHZYJCZYDJWFMJKLDDPMJEGXYHYLXHLQYQHKYCW "," Cjmyyxnatjhyccxzpcqlbzwwytwbqcmlpmyrjcccxfpznzzljplxxyztzlgdltcklyrzzgqttjhhhjljaxfgfjzslcfdqz "," LclgjdjzsnzlljpjqdcclcjxmyzftsxgcgsbrzxjqqctzhgyqtjqqlzxjYLYLBCYAMCSTYLPDJBYREGKLZYZHLYSZQLZNW "," CZCLLWJQJJJKDGJZOLBBZPPGLGHTGZXYGHZMYCNQSYCYHBHGXKAMTXYXNBSKYZZGJZLQJTFCJXDYGJQJJPMGWGJJJPKQSB "," Gbmmcjssclpqpdxcdyykypcjddyygywrhjrtgznyqldkljszzgzqzjgdykshpzmtlcpwnjyfyzdjcnmwescyglbtzzgmss "," Llyxysxxbsjsbbsgghfjlypmzjnlyywdqshzxtyywhmcyhywdbxbtlmsyyyfsxjcbdxxlhjhfssxzqhfzmzcztqcxzxrtt "," Djhnryzqqmtqdmmgnydxmjgdxcdyzbffallztdltfxmxqzdngwqdbdczjdxbzgsqqddjcmbkzffxmkdmdsyyszcmljdsyn "," Sprskmkmpcklgtbqtfzswtfgglyplljzhgjjgypzltcsmcnbtjbqfkdhbyzgkpbbymtdssxtbnpdkleycjnycdykztdhqh "," Syzsctarlltkzlgecllkjlqjaqnbdkkghpjtzqksecshalqfmmgjnlyjbbtmlyzxdxjpldlpcqdhzycbzsczbzmsljflkr "," Zjsnfrgjhxpdhyjybzgdlqcsezgxlblgyxtwmabchecmwyjyzlljjyhlgndjlslygkdzpzxjyyzlwcxszfgwyydlyhcljs "," Cmbjhblyzlycblydpdqysxqzbytdkyxjyycnrjmpdjgklcljbctbjddbblblczqrpyxjcjlzcshltoljnmdddlngkathqh "," Jhykheznmshrphqqjchgmfprxhjgdychghlyrzqlcyqjnzsqtkqjymszswlcfqqqxyfggyptqwlmcrnfkkfsyylqbmqamm "," MYXCTPSHcptxxzzsmphpshmclmldqfyqxszyjdjjzzhqpdszglstjbckbxyqzjsgpsxqzqzrqtbdkyxzkhhgflbcsmdldg "," Dzdblzyycxnncsybzbfglzzxswmsccmqnjqsbdqsjtxxmbltxzclzshzcxrqjgjylxzfjphymzqqydfqjjlzznzjcdgzyg "," Ctxmzysctlkphtxhtlbjxjlxscdqxcbbtjfqzfsltjbtkqbxxjjljchczdbzjdczjdcprnpqcjpfczlclzxzdmxmphjsgz "," Gszzqlylwtjpfsyasmcjbtzyycwmytzsjjljcqlwzmalbxyfbpnlsfhtgjwejjxxglljstgshjqlzfkcgnnnszfdeqfhbs ","    Aqtgylbxmmygszldydqmjjrgbjtkgdhgkblqkbdmbylxwcxyttybkmrtjzxqjbhlmhmjjzmqasldcyxyqdlqcafywyxqhz ",);    public static function UTF8_TO_GBK ($string)//encoding conversion, must be converted to GB2312 characters, here is just simple judgment is not very accurate, you can write one yourself.    {if (mb_check_encoding ($string, ' gb2312 ')) return $string;    if (function_exists (' Iconv ')) return Iconv ("Utf-8", "Gb2312//ignore", $string);     Return mb_convert_encoding ($string, ' gb2312 ', ' utf-8 ');    public static function conv ($str) {$str = SELF::UTF8_TO_GBK ($STR);    $len = strlen ($STR);    $NEWSTR = "; for ($i =0; $i < $len; + + $i) {$H= Ord ($str [$i]);        $L = Ord ($str [$i +1]);  Invalid character Set if ($H < 0xb0 | | $L < 0XA1 | | $H > 0xf7 | |        $L = = 0xFF) {$newStr. = $str [$i];        Continue if ($H < 0xd8)//($H >= 0xb0 && $H <=0xd7)//query text in the first-level kanji area (16-55) {$W = ($H << 8 ) |        $L; foreach (self:: $FirstTable as $key = + $value) {if ($W < $value) {$newStr. = s            Elf:: $FirstLetter [$key];            Break }}} else//if (H >= 0xd8 && H <= 0xf7)//query Chinese in the two-level Chinese character area (56-87) $newStr. =self:: $Sec        ondtable[$H -0xd8][$L -0XA1];    + + $i;    } return $NEWSTR; }} Echo Zh2py::conv (' Imperial Concubine ');//fecho zh2py::conv (' Chinese People's Republic of China ');//chinese ZHRMGHG

PHP Chinese to Pinyin first letter question

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.