zoukankan      html  css  js  c++  java
  • PHP获取汉字的转化为拼音字母实现程序

    一个完整的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); 
        } 
    } 
    //-------------------------中文转拼音结束--------------------------------// 
    //中文是双字节,所以需要两个字节连接起来(ASCII码的范围是在161-255) 
    $c = '齐秦'; 
    for($i=0; $i<strlen($c); $i++) { 
        echo ord($c[$i]).' ';//198 235 199 216 
    } 
    echo '<br>',chr(198).chr(235).chr(199).chr(216),'<br>'; 
       
      
    //测试 
    $PingYing = new GetPingYing(); 
    echo '<br>',$PingYing->getFirstPY('羽泉乐队,歌不错-推荐'),'<br>';//yqldgbc-tj 
    echo $PingYing->getAllPY('羽泉乐队,歌不错-推荐'),'<br>';   //yuquanleduigebucuo-tuijian 
    ?> 
    
  • 相关阅读:
    微软程序员最好的时代来了
    领域驱动设计系列 (六):CQRS
    当我谈 "加班有罪" 我在谈什么?
    parquet 简介(转)
    Spark动态资源分配-Dynamic Resource Allocation
    Spark配置参数详解
    PhpStorm使用sftp实现代码自动上传服务器
    docker 命令大全
    mysql 5.6配置
    docker volume
  • 原文地址:https://www.cnblogs.com/mayi168/p/3488523.html
Copyright © 2011-2022 走看看