牛人写的PHP 拼音字典

来源:互联网 发布:excel怎么分析数据 编辑:程序博客网 时间:2024/04/29 00:25

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

原创粉丝点击