'DZ', '19975' => 'WM', '19988' => 'QJ', '20048' => 'YL', '20056' => 'SC', '20060' => 'NM', '20094' => 'QG', '20127' => 'QJ', '20167' => 'QC', '20193' => 'YG', '20250' => 'KH', '20256' => 'ZC', '20282' => 'SC', '20285' => 'QJG', '20291' => 'TD', '20314' => 'YD', '20340' => 'NE', '20375' => 'TD', '20389' => 'YJ', '20391' => 'CZ', '20415' => 'PB', '20446' => 'YS', '20447' => 'SQ', '20504' => 'TC', '20608' => 'KG', '20854' => 'QJ', '20857' => 'ZC', '20911' => 'PF', '20504' => 'TC', '20608' => 'KG', '20854' => 'QJ', '20857' => 'ZC', '20911' => 'PF', '20985' => 'AW', '21032' => 'PB', '21048' => 'XQ', '21049' => 'SC', '21089' => 'YS', '21119' => 'JC', '21242' => 'SB', '21273' => 'SC', '21305' => 'YP', '21306' => 'QO', '21330' => 'ZC', '21333' => 'SDC', '21345' => 'QK', '21378' => 'CA', '21397' => 'SC', '21414' => 'XS', '21442' => 'SC', '21477' => 'JG', '21480' => 'TD', '21484' => 'ZS', '21494' => 'YX', '21505' => 'YX', '21512' => 'HG', '21523' => 'XH', '21537' => 'PB', '21542' => 'PF', '21549' => 'KH', '21571' => 'E', '21574' => 'DA', '21588' => 'TD', '21589' => 'O', '21618' => 'ZC', '21621' => 'KHA', '21632' => 'ZJ', '21654' => 'KG', '21679' => 'LKG', '21683' => 'KH', '21710' => 'A', '21719' => 'YH', '21734' => 'WOE', '21769' => 'A', '21780' => 'WN', '21804' => 'XH', '21834' => 'A', '21899' => 'ZD', '21903' => 'RN', '21908' => 'WO', '21939' => 'ZC', '21956' => 'SA', '21964' => 'YA', '21970' => 'TD', '22003' => 'A', '22031' => 'JG', '22040' => 'XS', '22060' => 'ZC', '22066' => 'ZC', '22079' => 'MH', '22129' => 'XJ', '22179' => 'XA', '22237' => 'NJ', '22244' => 'TD', '22280' => 'JQ', '22300' => 'YH', '22313' => 'XW', '22331' => 'YQ', '22343' => 'YJ', '22351' => 'PH', '22395' => 'DC', '22412' => 'TD', '22484' => 'PB', '22500' => 'PB', '22534' => 'ZD', '22549' => 'DH', '22561' => 'PB', '22612' => 'TD', '22771' => 'KQ', '22831' => 'HB', '22841' => 'JG', '22855' => 'QJ', '22865' => 'XQ', '23013' => 'ML', '23081' => 'WM', '23487' => 'SX', '23558' => 'QJ', '23561' => 'YW', '23586' => 'YW', '23614' => 'YW', '23615' => 'SN', '23631' => 'PB', '23646' => 'ZS', '23663' => 'ZT', '23673' => 'YG', '23762' => 'TD', '23769' => 'ZS', '23780' => 'QJ', '23884' => 'QK', '24055' => 'XH', '24113' => 'DC', '24162' => 'ZC', '24191' => 'GA', '24273' => 'QJ', '24324' => 'NL', '24377' => 'TD', '24378' => 'QJ', '24439' => 'PF', '24554' => 'ZS', '24683' => 'TD', '24694' => 'WE', '24733' => 'LK', '24925' => 'TN', '25094' => 'ZG', '25100' => 'XQ', '25103' => 'XH', '25153' => 'PB', '25170' => 'PB', '25179' => 'KG', '25203' => 'PB', '25240' => 'ZS', '25282' => 'FB', '25303' => 'NA', '25324' => 'KG', '25341' => 'ZY', '25373' => 'WZ', '25375' => 'XJ', '25384' => 'A', '25457' => 'A', '25528' => 'SD', '25530' => 'SC', '25552' => 'TD', '25774' => 'ZC', '25874' => 'ZC', '26044' => 'YW', '26080' => 'WM', '26292' => 'PB', '26333' => 'PB', '26355' => 'ZY', '26366' => 'CZ', '26397' => 'ZC', '26399' => 'QJ', '26415' => 'ZS', '26451' => 'SB', '26526' => 'ZC', '26552' => 'JG', '26561' => 'TD', '26588' => 'JG', '26597' => 'CZ', '26629' => 'ZS', '26638' => 'YL', '26646' => 'XQ', '26653' => 'KG', '26657' => 'XJ', '26727' => 'HG', '26894' => 'ZC', '26937' => 'ZS', '26946' => 'ZC', '26999' => 'KJ', '27099' => 'KJ', '27449' => 'YQ', '27481' => 'XS', '27542' => 'ZS', '27663' => 'ZS', '27748' => 'TS', '27784' => 'SC', '27788' => 'ZD', '27795' => 'TD', '27812' => 'O', '27850' => 'PB', '27852' => 'MB', '27895' => 'SL', '27898' => 'PL', '27973' => 'QJ', '27981' => 'KH', '27986' => 'HX', '27994' => 'XJ', '28044' => 'YC', '28065' => 'WG', '28177' => 'SM', '28267' => 'QJ', '28291' => 'KH', '28337' => 'ZQ', '28463' => 'TL', '28548' => 'DC', '28601' => 'TD', '28689' => 'PB', '28805' => 'JG', '28820' => 'QG', '28846' => 'PB', '28952' => 'TD', '28975' => 'ZC', '29100' => 'A', '29325' => 'QJ', '29575' => 'SL', '29602' => 'FB', '30010' => 'TD', '30044' => 'CX', '30058' => 'PF', '30091' => 'YSP', '30111' => 'YN', '30229' => 'XJ', '30427' => 'SC', '30465' => 'SX', '30631' => 'YQ', '30655' => 'QJ', '30684' => 'QJG', '30707' => 'SD', '30729' => 'XH', '30796' => 'LG', '30917' => 'PB', '31074' => 'NM', '31085' => 'JZ', '31109' => 'SC', '31181' => 'ZC', '31192' => 'MLB', '31293' => 'JQ', '31400' => 'YX', '31584' => 'YJ', '31896' => 'ZN', '31909' => 'ZY', '31995' => 'XJ', '32321' => 'PF', '32327' => 'ZY', '32418' => 'HG', '32420' => 'XQ', '32421' => 'HG', '32438' => 'LG', '32473' => 'GJ', '32488' => 'TD', '32521' => 'QJ', '32527' => 'PB', '32562' => 'ZSQ', '32564' => 'JZ', '32735' => 'ZD', '32793' => 'PB', '33071' => 'PF', '33098' => 'XL', '33100' => 'YA', '33152' => 'PB', '33261' => 'CX', '33324' => 'BP', '33333' => 'TD', '33406' => 'YA', '33426' => 'WM', '33432' => 'PB', '33445' => 'JG', '33486' => 'ZN', '33493' => 'TS', '33507' => 'QJ', '33540' => 'QJ', '33544' => 'ZC', '33564' => 'XQ', '33617' => 'YT', '33632' => 'QJ', '33636' => 'XH', '33637' => 'YX', '33694' => 'WG', '33705' => 'PF', '33728' => 'YW', '33882' => 'SR', '34067' => 'WM', '34074' => 'YW', '34121' => 'QJ', '34255' => 'ZC', '34259' => 'XL', '34425' => 'JH', '34430' => 'XH', '34485' => 'KH', '34503' => 'YS', '34532' => 'HG', '34552' => 'XS', '34558' => 'YE', '34593' => 'ZL', '34660' => 'YQ', '34892' => 'XH', '34928' => 'SC', '34999' => 'QJ', '35048' => 'PB', '35059' => 'SC', '35098' => 'ZC', '35203' => 'TQ', '35265' => 'JX', '35299' => 'JX', '35782' => 'SZ', '35828' => 'YS', '35830' => 'E', '35843' => 'TD', '35895' => 'YG', '35977' => 'MH', '36158' => 'JG', '36228' => 'QJ', '36426' => 'XQ', '36466' => 'DC', '36710' => 'JC', '36711' => 'ZYG', '36767' => 'PB', '36866' => 'SK', '36951' => 'YW', '37034' => 'YX', '37063' => 'XH', '37218' => 'ZC', '37325' => 'ZC', '38063' => 'PB', '38079' => 'TD', '38085' => 'QY', '38107' => 'DC', '38116' => 'TD', '38123' => 'YD', '38224' => 'HG', '38241' => 'XTC', '38271' => 'ZC', '38415' => 'YE', '38426' => 'KH', '38461' => 'YD', '38463' => 'AE', '38466' => 'PB', '38477' => 'XJ', '38518' => 'YT', '38551' => 'WK', '38585' => 'ZC', '38704' => 'XS', '38739' => 'LJ', '38761' => 'GJ', '38808' => 'SQ', '39048' => 'JG', '39049' => 'XJ', '39052' => 'HG', '39076' => 'CZ', '39271' => 'XT', '39534' => 'TD', '39552' => 'TD', '39584' => 'PB', '39647' => 'SB', '39730' => 'LG', '39748' => 'TPB', '40109' => 'ZQ', '40479' => 'ND', '40516' => 'HG', '40536' => 'HG', '40583' => 'QJ', '40765' => 'YQ', '40784' => 'QJ', '40840' => 'YK', '40863' => 'QJG' ]; protected static $code = 'utf-8'; public static function getstr($str) { $code = static::$code; $arr = array(); for ($i = 0, $len = mb_strlen($str, $code); $i < $len; $i++) { $single = mb_substr($str, $i, 1, $code); $ch = static::utf8_unicode($single, $code); // 获得unicode码 $w = static::$py_mult_list[$ch]; $arr[] = ($w) ? $w : static::getfirstchar($single); } $result = array(""); foreach ($arr as $v) { if ($v) { $result = static::makePY_list($v, $result); } } return implode('|', $result); } public static function makePY_list($str, $arr) { for ($i = 0, $len = strlen($str); $i < $len; $i++) { foreach ($arr as $t) { $re[] = $t . $str[$i]; } } return $re; } // 读取utf8字符的unicode码 public static function utf8_unicode($c, $charset = "utf-8") { if ($charset != "utf-8") { $c = iconv($charset, "utf-8", $c); } switch (strlen($c)) { case 1: return ord($c); case 2: $n = (ord($c[0]) & 0x3f) << 6; $n+= ord($c[1]) & 0x3f; return $n; case 3: $n = (ord($c[0]) & 0x1f) << 12; $n+= (ord($c[1]) & 0x3f) << 6; $n+= ord($c[2]) & 0x3f; return $n; case 4: $n = (ord($c[0]) & 0x0f) << 18; $n+= (ord($c[1]) & 0x3f) << 12; $n+= (ord($c[2]) & 0x3f) << 6; $n+= ord($c[3]) & 0x3f; return $n; } } // 获得单个汉字拼音首字母 public static function getfirstchar($s0) { $fchar = ord($s0{0}); if ($fchar >= ord('A') and $fchar <= ord('z')) { return strtoupper($s0{0}); } $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 and $asc <= - 20284) { return "A"; } if ($asc >= - 20283 and $asc <= - 19776) { return "B"; } if ($asc >= - 19775 and $asc <= - 19219) { return "C"; } if ($asc >= - 19218 and $asc <= - 18711) { return "D"; } if ($asc >= - 18710 and $asc <= - 18527) { return "E"; } if ($asc >= - 18526 and $asc <= - 18240) { return "F"; } if ($asc >= - 18239 and $asc <= - 17923) { return "G"; } if ($asc >= - 17922 and $asc <= - 17418) { return "H"; } if ($asc >= - 17417 and $asc <= - 16475) { return "J"; } if ($asc >= - 16474 and $asc <= - 16213) { return "K"; } if ($asc >= - 16212 and $asc <= - 15641) { return "L"; } if ($asc >= - 15640 and $asc <= - 15166) { return "M"; } if ($asc >= - 15165 and $asc <= - 14923) { return "N"; } if ($asc >= - 14922 and $asc <= - 14915) { return "O"; } if ($asc >= - 14914 and $asc <= - 14631) { return "P"; } if ($asc >= - 14630 and $asc <= - 14150) { return "Q"; } if ($asc >= - 14149 and $asc <= - 14091) { return "R"; } if ($asc >= - 14090 and $asc <= - 13319) { return "S"; } if ($asc >= - 13318 and $asc <= - 12839) { return "T"; } if ($asc >= - 12838 and $asc <= - 12557) { return "W"; } if ($asc >= - 12556 and $asc <= - 11848) { return "X"; } if ($asc >= - 11847 and $asc <= - 11056) { return "Y"; } if ($asc >= - 11055 and $asc <= - 10247) { return "Z"; } return null; } /** * 将ASCII编码转化为字符串. * * @param integer $num * @return string */ protected static function num2str($num) { if ($num > 0 && $num < 160) { return chr($num); } elseif ($num < -20319 || $num > -10247) { return ''; } else { $total = sizeof(static::$lib) - 1; for ($i = $total; $i >= 0; $i--) { if (static::$lib[$i][1] <= $num) { break; } } return static::$lib[$i][0]; } } /** * 汉字转化并输出拼音 * * @param string $str 所要转化拼音的汉字 * @param boolean $utf8 汉字编码是否为utf8 * @return string */ public static function output($str, $utf8 = true) { // 参数分析 if ($str == '') { return false; } // 编码转换. $str = ($utf8==true) ? iconv('utf-8', 'gbk', $str) : $str; $num = strlen($str); $pinyin = ''; for ($i=0; $i<$num; $i++) { $temp = ord(substr($str, $i, 1)); if ($temp > 160) { $temp2 = ord(substr($str, ++$i, 1)); $temp = $temp * 256 + $temp2-65536; } $pinyin .= static::num2str($temp); } // 输出的拼音编码转换. return ($utf8 == true) ? iconv('gbk', 'utf-8', $pinyin) : $pinyin; } }