如何获取汉字对应的拼音

通过汉字获得汉字所对应的拼音。

比如:张三--zhangsan

   李四--lisi

   王五--wangwu

通过下面的函数就可以实现:

View Code
<?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 zh2pinyin($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;
}
?>

在开发过程中可以直接把函数引用过来

如下调用:

<?php
include("pinyin.php");
//echo ( substr(zh2pinyin("中郭我"), 0, 1 ) );
echo (zh2pinyin("张三"));
?>

 

 

posted @ 2012-12-20 16:39  KoMiles  阅读(1683)  评论(0编辑  收藏  举报