Home > Backend Development > PHP Tutorial > 使用PHP获取汉字的拼音(全部与首字母)_php技巧

使用PHP获取汉字的拼音(全部与首字母)_php技巧

WBOY
Release: 2016-05-17 08:58:26
Original
993 people have browsed it

废话不多说,直接上代码:

复制代码 代码如下:

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           $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           return chr($num);
       } elseif ($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           $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    echo ord($c[$i]).' ';//198 235 199 216
}
echo '
',chr(198).chr(235).chr(199).chr(216),'
';

 
//测试
$PingYing = new GetPingYing();
echo '
',$PingYing->getFirstPY('羽泉乐队,歌不错-推荐'),'
';//yqldgbc-tj
echo $PingYing->getAllPY('羽泉乐队,歌不错-推荐'),'
';   //yuquanleduigebucuo-tuijian
?>
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template