• PHP:汉字转拼音类(全拼与首字母)


    汉字转拼音类(全拼与首字母)

    <?php
    class GetPingYing {
        private $pylist = 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
        );
        //全部拼音
        public function getAllPY($chinese, $delimiter = '', $length = 0) {
           $py = $this->zh_to_pys($chinese, $delimiter);
           if($length) {
               $py = substr($py, 0, $length);
           }
           return $py;
        }
        //拼音首个字母
        public function getFirstPY($chinese){
           $result = '' ;
           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 .= substr($this->zh_to_py($p),0,1);
           }
           return $result ;
        }
      
     
        //-------------------中文转拼音--------------------------------//
        private function zh_to_py($num, $blank = '') {
           if($num>0 && $num<160 ) {
               return chr($num);
           } elseif ($num<-20319||$num>-10247) {
               return $blank;
           } else {
               foreach ($this->pylist as $py => $code) {
                  if($code > $num) break;
                  $result = $py;
               }
               return $result;
           }
        }
      
     
        private function zh_to_pys($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->zh_to_py($p);
               if ($first) {
                  return $result[0];
               }
           }
           return implode($delimiter, $result);
        }
    }
    ?>

     使用方法:

    //测试
    $PingYing = new GetPingYing();
    echo '<br>',$PingYing->getFirstPY('羽泉乐队,歌不错-推荐'),'<br>';//yqldgbc-tj
    echo $PingYing->getAllPY('羽泉乐队,歌不错-推荐'),'<br>';   //yuquanleduigebucuo-tuijian
  • 相关阅读:
    6.4 总结(关于正确率)
    POI2013 Bytecomputer
    BZOJ1485 有趣的数列
    PAM
    BZOJ1787 meet
    BZOJ3895 rock
    URAL 1996 Cipher Message 3
    BZOJ1468 Tree
    Javascript初识之数据类型
    Javascript初识之流程控制、函数和内置对象
  • 原文地址:https://www.cnblogs.com/hongfei/p/3604970.html
Copyright © 2020-2023  润新知