php 中国語からピンインへ
<?php /** * 汉字转化为拼音,拼音转化为汉字 * */ class charset { private $_code=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 PinYin($str){ $ret=""; for($i=0;$i<strlen($str);$i++){ $p=ord(substr($str,$i,1)); //查看ASCII码 if($p>160){ //如果是中文,再多截取一个字符 $q=ord(substr($str,++$i,1)); $p=$p*256+$q-65536; } $ret.=$this->convert($p); } return $ret; } //转化函数 function convert($num){ if($num>0&&$num<160){ //如果不是汉字,直接返回相对字符 return chr($num); }elseif($num<"-20319"||$num>"-10247"){ return ""; }else{ //汉字,查找对应拼音 for($i=count($this->_code)-1;$i>=0;$i--){ if($this->_code[$i][1]<=$num) break; } return substr($this->_code[$i][0],0,1); } } } //------------------------------ <?php include_once 'charset.class.php'; header('Content-type: text/html;charset=gbk'); $charset=new charset(); foreach(array('武汉','中国','上海') as $val){ echo $charset->PinYin($val); echo '<br/>'; }