php技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > PHP编程 > php技巧 > php汉字转化为拼音

php下汉字转化为拼音的代码

作者:

能把汉字转化为拼音的一个函数很多问题都是因为中文问题造成的 如文件名最好别用中文
复制代码 代码如下:

<?php
$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 (substr(c("脚本"),0,1));
?>

输出:j
要取首字母就容易了,第一个字符就是
echo (substr(c("脚本"),0,1));
转换成大写:
echo strtoupper(substr(c("牛女"),0,1));
输出:J
echo (substr(c("脚本"),0,7));
输出:jiaoben



现在的解决方法一般是产生一个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($_POST['hz']); 
?> 
<form method=post action="<?php_self?>"> 
请在此处输入中文:<input name=hz> 
</form>
您可能感兴趣的文章:
阅读全文