| 以下为引用的内容:
源代码网整理以下php代码:
<?php
class ChineseSpell {
/** * @var array $chineseSpellList 拼音编码对应表 * @access private */ private $chineseSpellList = array( "a"=>-20319, "ai"=>-20317, "an"=>-20304, "ang"=>-20295, "ao"=>-20292, "ba"=>-20283, "bai"=>-20265, "ban"=>-20257, "bang"=>-20242, "bao"=>-20230, "bei"=>-20051, "ben"=>-20036, "beng"=>-20032, "bi"=>-20026, "bian"=>-20002, "biao"=>-19990, "bie"=>-19986, "bin"=>-19982, "bing"=>-19976, "bo"=>-19805, "bu"=>-19784, "ca"=>-19775, "cai"=>-19774, "can"=>-19763, "cang"=>-19756, "cao"=>-19751, "ce"=>-19746, "ceng"=>-19741, "cha"=>-19739, "chai"=>-19728, "chan"=>-19725, "chang"=>-19715, "chao"=>-19540, "che"=>-19531, "chen"=>-19525, "cheng"=>-19515, "chi"=>-19500, "chong"=>-19484, "chou"=>-19479, "chu"=>-19467, "chuai"=>-19289, "chuan"=>-19288, "chuang"=>-19281, "chui"=>-19275, "chun"=>-19270, "chuo"=>-19263, "ci"=>-19261, "cong"=>-19249, "cou"=>-19243, "cu"=>-19242, "cuan"=>-19238, "cui"=>-19235, "cun"=>-19227, "cuo"=>-19224, "da"=>-19218, "dai"=>-19212, "dan"=>-19038, "dang"=>-19023, "dao"=>-19018, "de"=>-19006, "deng"=>-19003, "di"=>-18996, "dian"=>-18977, "diao"=>-18961, "die"=>-18952, "ding"=>-18783, "diu"=>-18774, "dong"=>-18773, "dou"=>-18763, "du"=>-18756, "duan"=>-18741, "dui"=>-18735, "dun"=>-18731, "duo"=>-18722, "e"=>-18710, "en"=>-18697, "er"=>-18696, "fa"=>-18526, "fan"=>-18518, "fang"=>-18501, "fei"=>-18490, "fen"=>-18478, "feng"=>-18463, "fo"=>-18448, "fou"=>-18447, "fu"=>-18446, "ga"=>-18239, "gai"=>-18237, "gan"=>-18231, "gang"=>-18220, "gao"=>-18211, "ge"=>-18201, "gei"=>-18184, "gen"=>-18183, "geng"=>-18181, "gong"=>-18012, "gou"=>-17997, "gu"=>-17988, "gua"=>-17970, "guai"=>-17964, "guan"=>-17961, "guang"=>-17950, "gui"=>-17947, "gun"=>-17931, "guo"=>-17928, "ha"=>-17922, "hai"=>-17759, "han"=>-17752, "hang"=>-17733, "hao"=>-17730, "he"=>-17721, "hei"=>-17703, "hen"=>-17701, "heng"=>-17697, "hong"=>-17692, "hou"=>-17683, "hu"=>-17676, "hua"=>-17496, "huai"=>-17487, "huan"=>-17482, "huang"=>-17468, "hui"=>-17454, "hun"=>-17433, "huo"=>-17427, "ji"=>-17417, "jia"=>-17202, "jian"=>-17185, "jiang"=>-16983, "jiao"=>-16970, "jie"=>-16942, "jin"=>-16915, "jing"=>-16733, "jiong"=>-16708, "jiu"=>-16706, "ju"=>-16689, "juan"=>-16664, "jue"=>-16657, "jun"=>-16647, "ka"=>-16474, "kai"=>-16470, "kan"=>-16465, "kang"=>-16459, "kao"=>-16452, "ke"=>-16448, "ken"=>-16433, "keng"=>-16429, "kong"=>-16427, "kou"=>-16423, "ku"=>-16419, "kua"=>-16412, "kuai"=>-16407, "kuan"=>-16403, "kuang"=>-16401, "kui"=>-16393, "kun"=>-16220, "kuo"=>-16216, "la"=>-16212, "lai"=>-16205, "lan"=>-16202, "lang"=>-16187, "lao"=>-16180, "le"=>-16171, "lei"=>-16169, "leng"=>-16158, "li"=>-16155, "lia"=>-15959, "lian"=>-15958, "liang"=>-15944, "liao"=>-15933, "lie"=>-15920, "lin"=>-15915, "ling"=>-15903, "liu"=>-15889, "long"=>-15878, "lou"=>-15707, "lu"=>-15701, "lv"=>-15681, "luan"=>-15667, "lue"=>-15661, "lun"=>-15659, "luo"=>-15652, "ma"=>-15640, "mai"=>-15631, "man"=>-15625, "mang"=>-15454, "mao"=>-15448, "me"=>-15436, "mei"=>-15435, "men"=>-15419, "meng"=>-15416, "mi"=>-15408, "mian"=>-15394, "miao"=>-15385, "mie"=>-15377, "min"=>-15375, "ming"=>-15369, "miu"=>-15363, "mo"=>-15362, "mou"=>-15183, "mu"=>-15180, "na"=>-15165, "nai"=>-15158, "nan"=>-15153, "nang"=>-15150, "nao"=>-15149, "ne"=>-15144, "nei"=>-15143, "nen"=>-15141, "neng"=>-15140, "ni"=>-15139, "nian"=>-15128, "niang"=>-15121, "niao"=>-15119, "nie"=>-15117, "nin"=>-15110, "ning"=>-15109, "niu"=>-14941, "nong"=>-14937, "nu"=>-14933, "nv"=>-14930, "nuan"=>-14929, "nue"=>-14928, "nuo"=>-14926, "o"=>-14922, "ou"=>-14921, "pa"=>-14914, "pai"=>-14908, "pan"=>-14902, "pang"=>-14894, "pao"=>-14889, "pei"=>-14882, "pen"=>-14873, "peng"=>-14871, "pi"=>-14857, "pian"=>-14678, "piao"=>-14674, "pie"=>-14670, "pin"=>-14668, "ping"=>-14663, "po"=>-14654, "pu"=>-14645, "qi"=>-14630, "qia"=>-14594, "qian"=>-14429, "qiang"=>-14407, "qiao"=>-14399, "qie"=>-14384, "qin"=>-14379, "qing"=>-14368, "qiong"=>-14355, "qiu"=>-14353, "qu"=>-14345, "quan"=>-14170, "que"=>-14159, "qun"=>-14151, "ran"=>-14149, "rang"=>-14145, "rao"=>-14140, "re"=>-14137, "ren"=>-14135, "reng"=>-14125, "ri"=>-14123, "rong"=>-14122, "rou"=>-14112, "ru"=>-14109, "ruan"=>-14099, "rui"=>-14097, "run"=>-14094, "ruo"=>-14092, "sa"=>-14090, "sai"=>-14087, "san"=>-14083, "sang"=>-13917, "sao"=>-13914, "se"=>-13910, "sen"=>-13907, "seng"=>-13906, "sha"=>-13905, "shai"=>-13896, "shan"=>-13894, "shang"=>-13878, "shao"=>-13870, "she"=>-13859, "shen"=>-13847, "sheng"=>-13831, "shi"=>-13658, "shou"=>-13611, "shu"=>-13601, "shua"=>-13406, "shuai"=>-13404, "shuan"=>-13400, "shuang"=>-13398, "shui"=>-13395, "shun"=>-13391, "shuo"=>-13387, "si"=>-13383, "song"=>-13367, "sou"=>-13359, "su"=>-13356, "suan"=>-13343, "sui"=>-13340, "sun"=>-13329, "suo"=>-13326, "ta"=>-13318, "tai"=>-13147, "tan"=>-13138, "tang"=>-13120, "tao"=>-13107, "te"=>-13096, "teng"=>-13095, "ti"=>-13091, "tian"=>-13076, "tiao"=>-13068, "tie"=>-13063, "ting"=>-13060, "tong"=>-12888, "tou"=>-12875, "tu"=>-12871, "tuan"=>-12860, "tui"=>-12858, "tun"=>-12852, "tuo"=>-12849, "wa"=>-12838, "wai"=>-12831, "wan"=>-12829, "wang"=>-12812, "wei"=>-12802, "wen"=>-12607, "weng"=>-12597, "wo"=>-12594, "wu"=>-12585, "xi"=>-12556, "xia"=>-12359, "xian"=>-12346, "xiang"=>-12320, "xiao"=>-12300, "xie"=>-12120, "xin"=>-12099, "xing"=>-12089, "xiong"=>-12074, "xiu"=>-12067, "xu"=>-12058, "xuan"=>-12039, "xue"=>-11867, "xun"=>-11861, "ya"=>-11847, "yan"=>-11831, "yang"=>-11798, "yao"=>-11781, "ye"=>-11604, "yi"=>-11589, "yin"=>-11536, "ying"=>-11358, "yo"=>-11340, "yong"=>-11339, "you"=>-11324, "yu"=>-11303, "yuan"=>-11097, "yue"=>-11077, "yun"=>-11067, "za"=>-11055, "zai"=>-11052, "zan"=>-11045, "zang"=>-11041, "zao"=>-11038, "ze"=>-11024, "zei"=>-11020, "zen"=>-11019, "zeng"=>-11018, "zha"=>-11014, "zhai"=>-10838, "zhan"=>-10832, "zhang"=>-10815, "zhao"=>-10800, "zhe"=>-10790, "zhen"=>-10780, "zheng"=>-10764, "zhi"=>-10587, "zhong"=>-10544, "zhou"=>-10533, "zhu"=>-10519, "zhua"=>-10331, "zhuai"=>-10329, "zhuan"=>-10328, "zhuang"=>-10322, "zhui"=>-10315, "zhun"=>-10309, "zhuo"=>-10307, "zi"=>-10296, "zong"=>-10281, "zou"=>-10274, "zu"=>-10270, "zuan"=>-10262, "zui"=>-10260, "zun"=>-10256, "zuo"=>-10254 ); /** * 取汉字所有拼音 * @param string $chinese 要转换的汉字 * @param string $delimiter 分隔符 * @param int $length 返回的长度 * @return string */ public function getFullSpell($chinese, $delimiter = " ", $length = 0) { $spell = $this->getChineseSpells($chinese, $delimiter); if ($length) { $spell = substr($spell, 0, $length); } return $spell; } /** * 取汉字第一个拼音 * @param string $chinese 要转换的汉字 * @param int $length 返回的长度 * @return string */ public function getFirstSpell($chinese, $length = 0) { $spell = $this->getChineseSpells($chinese, " ", 1); if ($length) { $spell = substr($spell, 0, $length); } return $spell; }
/** * 取一个汉字码对应的拼音 * @param int $num 汉字码 * @param string $blank 空白字符 * @return string */ private function getChineseSpell ($num, $blank = "") { if ( $num>0 && $num<160 ) { return chr($num); } elseif ($num<-20319||$num>-10247) { return $blank; } else { foreach ($this->chineseSpellList as $spell => $code) { if ($code > $num) break; $result = $spell; } return $result; } }
/** * 取汉字拼音 * @param string $chinese 要转换的汉字 * @param string $delimiter 分隔符 * @param int $first 是否只返回第一个 * @return string */ private function getChineseSpells($chinese, $delimiter = " ", $first=0) { $result = array(); for ($i=0; $i<strlen($chinese); $i++) { $p = ord(substr($chinese,$i,1)); if ($p>160) { $q = ord(substr($chinese,++$i,1)); $p = $p*256 + $q - 65536; } $result[] = $this->getChineseSpell($p); if ($first) { return $result[0]; } } return implode($delimiter, $result); } } ?>
|