Created
March 18, 2015 08:40
-
-
Save burugo/b8fe1cb1ba5ca5fdae6a to your computer and use it in GitHub Desktop.
pinyin
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| class Pinyin { | |
| // | |
| protected $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) | |
| ); | |
| // | |
| public function toPinyin($str) { | |
| // | |
| $str = iconv("UTF-8", "gb2312", $str); | |
| // | |
| $ret = ""; | |
| for( $j=0; $j<strlen($str); $j++ ) { | |
| $p = ord(substr($str,$j,1)); | |
| if($p>160) { | |
| $q = ord(substr($str,++$j,1)); | |
| $p = $p*256+$q-65536; | |
| } | |
| // | |
| if( $p>0 && $p<160 ) { | |
| $ret.=chr($p); | |
| } | |
| elseif( $p<-20319 || $p>-10247 ) { | |
| if ( $p==-4923 ) { | |
| $ret.="xuan"; | |
| } | |
| } | |
| else { | |
| $i = 0; | |
| for( $i=count($this->d)-1; $i>=0; $i-- ) { | |
| if($this->d[$i][1]<=$p){ | |
| break; | |
| } | |
| } | |
| $ret .= $this->d[$i][0]; | |
| } | |
| } | |
| // | |
| return $ret; | |
| } | |
| } | |
| ?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment