PHP获取汉字的拼音字母实现程序
一个完整的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>' ; //开源代码phpfensi测试数据 //测试 $PingYing = new GetPingYing(); echo '<br>' , $PingYing ->getFirstPY( '羽泉乐队,歌不错-推荐' ), '<br>' ; //yqldgbc-tj echo $PingYing ->getAllPY( '羽泉乐队,歌不错-推荐' ), '<br>' ; //yuquanleduigebucuo-tuijian ?>查看更多关于PHP获取汉字的拼音字母实现程序 - php类库的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did29528