摘要:拼音字符转换图将中文编码成拼音要转换为拼音的字符串返回格式每个字的首字母全拼音字符串字母中文转换到拼音每次处理一个字符待处理字符双字节拼音结果为拼音首字母测试文字结果为全拼音测试文字结果为第一个拼音测试文字
class Pinyin { /** * 拼音字符转换图 * @var array */ private $data = array( "a"=>-20319,"ai"=>-20317,"an"=>-20304,"ang"=>-20295,"ao"=>-20292, "ba"=>-20283,"bai"=>-20265,"ban"=>-20257,"bang"=>-20242,"bao"=>-20230,"bei"=>-20051,"ben"=>-20036,"beng"=>-20032,"bi"=>-20026,"bian"=>-20002,"biao"=>-19990,"bie"=>-19986,"bin"=>-19982,"bing"=>-19976,"bo"=>-19805,"bu"=>-19784, "ca"=>-19775,"cai"=>-19774,"can"=>-19763,"cang"=>-19756,"cao"=>-19751,"ce"=>-19746,"ceng"=>-19741,"cha"=>-19739,"chai"=>-19728,"chan"=>-19725,"chang"=>-19715,"chao"=>-19540,"che"=>-19531,"chen"=>-19525,"cheng"=>-19515,"chi"=>-19500,"chong"=>-19484,"chou"=>-19479,"chu"=>-19467,"chuai"=>-19289,"chuan"=>-19288,"chuang"=>-19281,"chui"=>-19275,"chun"=>-19270,"chuo"=>-19263,"ci"=>-19261,"cong"=>-19249,"cou"=>-19243,"cu"=>-19242,"cuan"=>-19238,"cui"=>-19235,"cun"=>-19227,"cuo"=>-19224, "da"=>-19218,"dai"=>-19212,"dan"=>-19038,"dang"=>-19023,"dao"=>-19018,"de"=>-19006,"deng"=>-19003,"di"=>-18996,"dian"=>-18977,"diao"=>-18961,"die"=>-18952,"ding"=>-18783,"diu"=>-18774,"dong"=>-18773,"dou"=>-18763,"du"=>-18756,"duan"=>-18741,"dui"=>-18735,"dun"=>-18731,"duo"=>-18722, "e"=>-18710,"en"=>-18697,"er"=>-18696, "fa"=>-18526,"fan"=>-18518,"fang"=>-18501,"fei"=>-18490,"fen"=>-18478,"feng"=>-18463,"fo"=>-18448,"fou"=>-18447,"fu"=>-18446, "ga"=>-18239,"gai"=>-18237,"gan"=>-18231,"gang"=>-18220,"gao"=>-18211,"ge"=>-18201,"gei"=>-18184,"gen"=>-18183,"geng"=>-18181,"gong"=>-18012,"gou"=>-17997,"gu"=>-17988,"gua"=>-17970,"guai"=>-17964,"guan"=>-17961,"guang"=>-17950,"gui"=>-17947,"gun"=>-17931,"guo"=>-17928, "ha"=>-17922,"hai"=>-17759,"han"=>-17752,"hang"=>-17733,"hao"=>-17730,"he"=>-17721,"hei"=>-17703,"hen"=>-17701,"heng"=>-17697,"hong"=>-17692,"hou"=>-17683,"hu"=>-17676,"hua"=>-17496,"huai"=>-17487,"huan"=>-17482,"huang"=>-17468,"hui"=>-17454,"hun"=>-17433,"huo"=>-17427, "ji"=>-17417,"jia"=>-17202,"jian"=>-17185,"jiang"=>-16983,"jiao"=>-16970,"jie"=>-16942,"jin"=>-16915,"jing"=>-16733,"jiong"=>-16708,"jiu"=>-16706,"ju"=>-16689,"juan"=>-16664,"jue"=>-16657,"jun"=>-16647, "ka"=>-16474,"kai"=>-16470,"kan"=>-16465,"kang"=>-16459,"kao"=>-16452,"ke"=>-16448,"ken"=>-16433,"keng"=>-16429,"kong"=>-16427,"kou"=>-16423,"ku"=>-16419,"kua"=>-16412,"kuai"=>-16407,"kuan"=>-16403,"kuang"=>-16401,"kui"=>-16393,"kun"=>-16220,"kuo"=>-16216, "la"=>-16212,"lai"=>-16205,"lan"=>-16202,"lang"=>-16187,"lao"=>-16180,"le"=>-16171,"lei"=>-16169,"leng"=>-16158,"li"=>-16155,"lia"=>-15959,"lian"=>-15958,"liang"=>-15944,"liao"=>-15933,"lie"=>-15920,"lin"=>-15915,"ling"=>-15903,"liu"=>-15889,"long"=>-15878,"lou"=>-15707,"lu"=>-15701,"lv"=>-15681,"luan"=>-15667,"lue"=>-15661,"lun"=>-15659,"luo"=>-15652, "ma"=>-15640,"mai"=>-15631,"man"=>-15625,"mang"=>-15454,"mao"=>-15448,"me"=>-15436,"mei"=>-15435,"men"=>-15419,"meng"=>-15416,"mi"=>-15408,"mian"=>-15394,"miao"=>-15385,"mie"=>-15377,"min"=>-15375,"ming"=>-15369,"miu"=>-15363,"mo"=>-15362,"mou"=>-15183,"mu"=>-15180, "na"=>-15165,"nai"=>-15158,"nan"=>-15153,"nang"=>-15150,"nao"=>-15149,"ne"=>-15144,"nei"=>-15143,"nen"=>-15141,"neng"=>-15140,"ni"=>-15139,"nian"=>-15128,"niang"=>-15121,"niao"=>-15119,"nie"=>-15117,"nin"=>-15110,"ning"=>-15109,"niu"=>-14941,"nong"=>-14937,"nu"=>-14933,"nv"=>-14930,"nuan"=>-14929,"nue"=>-14928,"nuo"=>-14926, "o"=>-14922,"ou"=>-14921, "pa"=>-14914,"pai"=>-14908,"pan"=>-14902,"pang"=>-14894,"pao"=>-14889,"pei"=>-14882,"pen"=>-14873,"peng"=>-14871,"pi"=>-14857,"pian"=>-14678,"piao"=>-14674,"pie"=>-14670,"pin"=>-14668,"ping"=>-14663,"po"=>-14654,"pu"=>-14645, "qi"=>-14630,"qia"=>-14594,"qian"=>-14429,"qiang"=>-14407,"qiao"=>-14399,"qie"=>-14384,"qin"=>-14379,"qing"=>-14368,"qiong"=>-14355,"qiu"=>-14353,"qu"=>-14345,"quan"=>-14170,"que"=>-14159,"qun"=>-14151, "ran"=>-14149,"rang"=>-14145,"rao"=>-14140,"re"=>-14137,"ren"=>-14135,"reng"=>-14125,"ri"=>-14123,"rong"=>-14122,"rou"=>-14112,"ru"=>-14109,"ruan"=>-14099,"rui"=>-14097,"run"=>-14094,"ruo"=>-14092, "sa"=>-14090,"sai"=>-14087,"san"=>-14083,"sang"=>-13917,"sao"=>-13914,"se"=>-13910,"sen"=>-13907,"seng"=>-13906,"sha"=>-13905,"shai"=>-13896,"shan"=>-13894,"shang"=>-13878,"shao"=>-13870,"she"=>-13859,"shen"=>-13847,"sheng"=>-13831,"shi"=>-13658,"shou"=>-13611,"shu"=>-13601,"shua"=>-13406,"shuai"=>-13404,"shuan"=>-13400,"shuang"=>-13398,"shui"=>-13395,"shun"=>-13391,"shuo"=>-13387,"si"=>-13383,"song"=>-13367,"sou"=>-13359,"su"=>-13356,"suan"=>-13343,"sui"=>-13340,"sun"=>-13329,"suo"=>-13326, "ta"=>-13318,"tai"=>-13147,"tan"=>-13138,"tang"=>-13120,"tao"=>-13107,"te"=>-13096,"teng"=>-13095,"ti"=>-13091,"tian"=>-13076,"tiao"=>-13068,"tie"=>-13063,"ting"=>-13060,"tong"=>-12888,"tou"=>-12875,"tu"=>-12871,"tuan"=>-12860,"tui"=>-12858,"tun"=>-12852,"tuo"=>-12849, "wa"=>-12838,"wai"=>-12831,"wan"=>-12829,"wang"=>-12812,"wei"=>-12802,"wen"=>-12607,"weng"=>-12597,"wo"=>-12594,"wu"=>-12585, "xi"=>-12556,"xia"=>-12359,"xian"=>-12346,"xiang"=>-12320,"xiao"=>-12300,"xie"=>-12120,"xin"=>-12099,"xing"=>-12089,"xiong"=>-12074,"xiu"=>-12067,"xu"=>-12058,"xuan"=>-12039,"xue"=>-11867,"xun"=>-11861, "ya"=>-11847,"yan"=>-11831,"yang"=>-11798,"yao"=>-11781,"ye"=>-11604,"yi"=>-11589,"yin"=>-11536,"ying"=>-11358,"yo"=>-11340,"yong"=>-11339,"you"=>-11324,"yu"=>-11303,"yuan"=>-11097,"yue"=>-11077,"yun"=>-11067, "za"=>-11055,"zai"=>-11052,"zan"=>-11045,"zang"=>-11041,"zao"=>-11038,"ze"=>-11024,"zei"=>-11020,"zen"=>-11019,"zeng"=>-11018,"zha"=>-11014,"zhai"=>-10838,"zhan"=>-10832,"zhang"=>-10815,"zhao"=>-10800,"zhe"=>-10790,"zhen"=>-10780,"zheng"=>-10764,"zhi"=>-10587,"zhong"=>-10544,"zhou"=>-10533,"zhu"=>-10519,"zhua"=>-10331,"zhuai"=>-10329,"zhuan"=>-10328,"zhuang"=>-10322,"zhui"=>-10315,"zhun"=>-10309,"zhuo"=>-10307,"zi"=>-10296,"zong"=>-10281,"zou"=>-10274,"zu"=>-10270,"zuan"=>-10262,"zui"=>-10260,"zun"=>-10256,"zuo"=>-10254 ); /** * 将中文编码成拼音 * @param string $str 要转换为拼音的字符串 * @param string $RetFormat 返回格式 [first:每个字的首字母|all:全拼音|one:字符串字母] * @return string */ public function get_pinyin($str, $RetFormat="first") { $GBK = iconv("UTF-8", "GBK", $str); $UTF8 = iconv("GBK", "UTF-8", $GBK); if($UTF8 != $str) $GBK = $str; $Buf = array(); for ($i=0, $iLoop=strlen($GBK); $i<$iLoop; $i++) { $Chr = ord($GBK{$i}); if ($Chr>160) { $Chr = ($Chr<<8) + ord($GBK{++$i}) - 65536; } if ("first" == $RetFormat || "one" == $RetFormat) { $Buf[] = substr($this->zh2py($Chr),0,1); }else{ $Buf[] = $this->zh2py($Chr); } } if ("first" === $RetFormat) { return implode("", $Buf); }elseif("one" == $RetFormat) { return $Buf[0]; }else{ return implode(" ", $Buf); } } /** * 中文转换到拼音(每次处理一个字符) * @param number $iWORD 待处理字符双字节 * @return string 拼音 */ private function zh2py($iWORD) { if($iWORD>0 && $iWORD<160 ) { return chr($iWORD); } elseif ($iWORD<-20319||$iWORD>-10247) { return ""; } else { foreach ($this->data as $py => $code) { if($code > $iWORD) break; $result = $py; } return $result; } } } $Pinyin = new Pinyin(); //结果为拼音首字母 echo $Pinyin->get_pinyin("测试文字"), "
"; //结果为全拼音 echo $Pinyin->get_pinyin("测试文字", "all"), "
"; //结果为第一个拼音 echo $Pinyin->get_pinyin("测试文字", "one"), "
";
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/21316.html
摘要:如果转进制,则位进制只能表示个汉字,这个太少了。假设我们用个进制的字符,则可以表示,表示个汉字绰绰有余,但这时候需要多个字符。 项目地址:https://github.com/xinglie/pi... 压缩说明 为了便于在网络上的传输,本人想办法写了一个压缩算法,目前这个版本是压缩好的,带自解压功能以下说明压缩思路: 理想状态下是使用Stirng.prototype.localCom...
阅读 1257·2021-09-22 15:18
阅读 2588·2021-09-22 15:17
阅读 2215·2019-08-30 15:55
阅读 1566·2019-08-30 15:54
阅读 1032·2019-08-30 13:12
阅读 618·2019-08-30 13:12
阅读 1671·2019-08-29 11:33
阅读 1430·2019-08-26 17:04