一个完整的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>'; //开源代码Vevb.com
- //测试
- $PingYing = new GetPingYing();
- echo '<br>',$PingYing->getFirstPY('羽泉乐队,歌不错-推荐'),'<br>';//yqldgbc-tj
- echo $PingYing->getAllPY('羽泉乐队,歌不错-推荐'),'<br>'; //yuquanleduigebucuo-tuijian
- ?>
新闻热点
疑难解答