汉字转化为拼音(php版)
2018-09-07 14:48
汉字转化为拼音(php版) 很多服务器对于中文文件名支持不是很好,有没有好的办法来解决呢???现在的解决方法一般是产生一个ID,将这个ID做文件名;网页上如果url带汉字也经常出错;现在的解决方法一般用urlencode编码
现在用了这个转化,就好多了
原理:利用多维数组
1.添加索引
2.遍历数组
<?
$d=array(
array(a,-20319),
array(ai,-20317),
array(an,-20304),
array(ang,-20295),
array(ao,-20292),
array(ba,-20283),
array(bai,-20265),
array(ban,-20257),
array(bang,-20242),
array(bao,-20230),
array(bei,-20051),
array(ben,-20036),
array(beng,-20032),
array(bi,-20026),
array(bian,-20002),
array(biao,-19990),
array(bie,-19986),
array(bin,-19982),
array(bing,-19976),
array(bo,-19805),
array(bu,-19784),
array(ca,-19775),
array(cai,-19774),
array(can,-19763),
array(cang,-19756),
array(cao,-19751),
array(ce,-19746),
array(ceng,-19741),
array(cha,-19739),
array(chai,-19728),
array(chan,-19725),
array(chang,-19715),
array(chao,-19540),
array(che,-19531),
array(chen,-19525),
array(cheng,-19515),
array(chi,-19500),
array(chong,-19484),
array(chou,-19479),
array(chu,-19467),
array(chuai,-19289),
array(chuan,-19288),
array(chuang,-19281),
array(chui,-19275),
array(chun,-19270),
array(chuo,-19263),
array(ci,-19261),
array(cong,-19249),
array(cou,-19243),
array(cu,-19242),
array(cuan,-19238),
array(cui,-19235),
array(cun,-19227),
array(cuo,-19224),
array(da,-19218),
array(dai,-19212),
array(dan,-19038),
array(dang,-19023),
array(dao,-19018),
array(de,-19006),
array(deng,-19003),
array(di,-18996),
array(dian,-18977),
array(diao,-18961),
array(die,-18952),
array(ding,-18783),
array(diu,-18774),
array(dong,-18773),
array(dou,-18763),
array(du,-18756),
array(duan,-18741),
array(dui,-18735),
array(dun,-18731),
array(duo,-18722),
array(e,-18710),
array(en,-18697),
array(er,-18696),
array(fa,-18526),
array(fan,-18518),
array(fang,-18501),
array(fei,-18490),
array(fen,-18478),
array(feng,-18463),
array(fo,-18448),
array(fou,-18447),
array(fu,-18446),
array(ga,-18239),
array(gai,-18237),
array(gan,-18231),
array(gang,-18220),
array(gao,-18211),
array(ge,-18201),
array(gei,-18184),
array(gen,-18183),
array(geng,-18181),
array(gong,-18012),
array(gou,-17997),
array(gu,-17988),
array(gua,-17970),
array(guai,-17964),
array(guan,-17961),
array(guang,-17950),
array(gui,-17947),
array(gun,-17931),
array(guo,-17928),
array(ha,-17922),
array(hai,-17759),
array(han,-17752),
array(hang,-17733),
array(hao,-17730),
array(he,-17721),
array(hei,-17703),
array(hen,-17701),
array(heng,-17697),
array(hong,-17692),
array(hou,-17683),
array(hu,-17676),
array(hua,-17496),
array(huai,-17487),
array(huan,-17482),
array(huang,-17468),
array(hui,-17454),
array(hun,-17433),
array(huo,-17427),
array(ji,-17417),
array(jia,-17202),
array(jian,-17185),
array(jiang,-16983),
array(jiao,-16970),
array(jie,-16942),
array(jin,-16915),
array(jing,-16733),
array(jiong,-16708),
array(jiu,-16706),
array(ju,-16689),
array(juan,-16664),
array(jue,-16657),
array(jun,-16647),
array(ka,-16474),
array(kai,-16470),
array(kan,-16465),
array(kang,-16459),
array(kao,-16452),
array(ke,-16448),
array(ken,-16433),
array(keng,-16429),
array(kong,-16427),
array(kou,-16423),
array(ku,-16419),
array(kua,-16412),
array(kuai,-16407),
array(kuan,-16403),
array(kuang,-16401),
array(kui,-16393),
array(kun,-16220),
array(kuo,-16216),
array(la,-16212),
array(lai,-16205),
array(lan,-16202),
array(lang,-16187),
array(lao,-16180),
array(le,-16171),
array(lei,-16169),
array(leng,-16158),
array(li,-16155),
array(lia,-15959),
array(lian,-15958),
array(liang,-15944),
array(liao,-15933),
array(lie,-15920),
array(lin,-15915),
array(ling,-15903),
array(liu,-15889),
array(long,-15878),
array(lou,-15707),
array(lu,-15701),
array(lv,-15681),
array(luan,-15667),
array(lue,-15661),
array(lun,-15659),
array(luo,-15652),
array(ma,-15640),
array(mai,-15631),
array(man,-15625),
array(mang,-15454),
array(mao,-15448),
array(me,-15436),
array(mei,-15435),
array(men,-15419),
array(meng,-15416),
array(mi,-15408),
array(mian,-15394),
array(miao,-15385),
array(mie,-15377),
array(min,-15375),
array(ming,-15369),
array(miu,-15363),
array(mo,-15362),
array(mou,-15183),
array(mu,-15180),
array(na,-15165),
array(nai,-15158),
array(nan,-15153),
array(nang,-15150),
array(nao,-15149),
array(ne,-15144),
array(nei,-15143),
array(nen,-15141),
array(neng,-15140),
array(ni,-15139),
array(nian,-15128),
array(niang,-15121),
array(niao,-15119),
array(nie,-15117),
array(nin,-15110),
array(ning,-15109),
array(niu,-14941),
array(nong,-14937),
array(nu,-14933),
array(nv,-14930),
array(nuan,-14929),
array(nue,-14928),
array(nuo,-14926),
array(o,-14922),
array(ou,-14921),
array(pa,-14914),
array(pai,-14908),
array(pan,-14902),
array(pang,-14894),
array(pao,-14889),
array(pei,-14882),
array(pen,-14873),
array(peng,-14871),
array(pi,-14857),
array(pian,-14678),
array(piao,-14674),
array(pie,-14670),
array(pin,-14668),
array(ping,-14663),
array(po,-14654),
array(pu,-14645),
array(qi,-14630),
array(qia,-14594),
array(qian,-14429),
array(qiang,-14407),
array(qiao,-14399),
array(qie,-14384),
array(qin,-14379),
array(qing,-14368),
array(qiong,-14355),
array(qiu,-14353),
array(qu,-14345),
array(quan,-14170),
array(que,-14159),
array(qun,-14151),
array(ran,-14149),
array(rang,-14145),
array(rao,-14140),
array(re,-14137),
array(ren,-14135),
array(reng,-14125),
array(ri,-14123),
array(rong,-14122),
array(rou,-14112),
array(ru,-14109),
array(ruan,-14099),
array(rui,-14097),
array(run,-14094),
array(ruo,-14092),
array(sa,-14090),
array(sai,-14087),
array(san,-14083),
array(sang,-13917),
array(sao,-13914),
array(se,-13910),
array(sen,-13907),
array(seng,-13906),
array(sha,-13905),
array(shai,-13896),
array(shan,-13894),
array(shang,-13878),
array(shao,-13870),
array(she,-13859),
array(shen,-13847),
array(sheng,-13831),
array(shi,-13658),
array(shou,-13611),
array(shu,-13601),
array(shua,-13406),
array(shuai,-13404),
array(shuan,-13400),
array(shuang,-13398),
array(shui,-13395),
array(shun,-13391),
array(shuo,-13387),
array(si,-13383),
array(song,-13367),
array(sou,-13359),
array(su,-13356),
array(suan,-13343),
array(sui,-13340),
array(sun,-13329),
array(suo,-13326),
array(ta,-13318),
array(tai,-13147),
array(tan,-13138),
array(tang,-13120),
array(tao,-13107),
array(te,-13096),
array(teng,-13095),
array(ti,-13091),
array(tian,-13076),
array(tiao,-13068),
array(tie,-13063),
array(ting,-13060),
array(tong,-12888),
array(tou,-12875),
array(tu,-12871),
array(tuan,-12860),
array(tui,-12858),
array(tun,-12852),
array(tuo,-12849),
array(wa,-12838),
array(wai,-12831),
array(wan,-12829),
array(wang,-12812),
array(wei,-12802),
array(wen,-12607),
array(weng,-12597),
array(wo,-12594),
array(wu,-12585),
array(xi,-12556),
array(xia,-12359),
array(xian,-12346),
array(xiang,-12320),
array(xiao,-12300),
array(xie,-12120),
array(xin,-12099),
array(xing,-12089),
array(xiong,-12074),
array(xiu,-12067),
array(xu,-12058),
array(xuan,-12039),
array(xue,-11867),
array(xun,-11861),
array(ya,-11847),
array(yan,-11831),
array(yang,-11798),
array(yao,-11781),
array(ye,-11604),
array(yi,-11589),
array(yin,-11536),
array(ying,-11358),
array(yo,-11340),
array(yong,-11339),
array(you,-11324),
array(yu,-11303),
array(yuan,-11097),
array(yue,-11077),
array(yun,-11067),
array(za,-11055),
array(zai,-11052),
array(zan,-11045),
array(zang,-11041),
array(zao,-11038),
array(ze,-11024),
array(zei,-11020),
array(zen,-11019),
array(zeng,-11018),
array(zha,-11014),
array(zhai,-10838),
array(zhan,-10832),
array(zhang,-10815),
array(zhao,-10800),
array(zhe,-10790),
array(zhen,-10780),
array(zheng,-10764),
array(zhi,-10587),
array(zhong,-10544),
array(zhou,-10533),
array(zhu,-10519),
array(zhua,-10331),
array(zhuai,-10329),
array(zhuan,-10328),
array(zhuang,-10322),
array(zhui,-10315),
array(zhun,-10309),
array(zhuo,-10307),
array(zi,-10296),
array(zong,-10281),
array(zou,-10274),
array(zu,-10270),
array(zuan,-10262),
array(zui,-10260),
array(zun,-10256),
array(zuo,-10254)
);
function g($num){
global $d;
if($num>0&&$num<160){
return chr($num);
}
elseif($num<-20319
$num>-10247){
return ;
}else{
for($i=count($d)-1;$i>=0;$i--){if($d[$i][1]<=$num)break;}
return $d[$i][0];
}
}
function c($str){
$ret=;
for($i=0;$i<strlen($str);$i++){
$p=ord(substr($str,$i,1));
if($p>160){
$q=ord(substr($str,++$i,1));
$p=$p*256+$q-65536;
}
$ret.=g($p);
}
return $ret;
}
echo c($hz);
?>
<form method=post>
请在此处输入中文:<input name=hz>
</form>