• 能把汉字转化为拼音的一个函数
    时间:2008-11-03   作者:佚名   出处:互联网

    很多问题都是因为中文问题造成的
    如文件名最好别用中文
    现在的解决方法一般是产生一个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>

    网友留言/评论

    我要留言/评论