Converting Chinese characters to PinYin (PHP version)
Many servers do not support Chinese file names very well. Is there a good solution ??? The current solution is to generate an ID and name the ID as the file name. If the URL on the webpage contains Chinese characters, errors are often reported. The current solution is generally encoded with urlencode.
It's much better to use this conversion.
Principle: multidimensional array
1. Add an index
2. traverse the Array
<?
$ D = array (
Array (& quot; A & quot;,-20319 ),
Array ("AI",-20317 ),
Array ("an",-20304 ),
Array (& quot; Ang & quot;,-20295 ),
Array ("Ao",-20292 ),
Array (& quot; BA & quot;,-20283 ),
Array ("bai",-20265 ),
Array ("ban",-20257 ),
Array (& quot; Bang & quot;,-20242 ),
Array ("Bao",-20230 ),
Array (& quot; bei & quot;,-20051 ),
Array ("Ben",-20036 ),
Array (& quot; Beng & quot;,-20032 ),
Array ("bi",-1, 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 (& quot; CE & quot;,-19746 ),
Array (& quot; Ceng & quot;,-19741 ),
Array (& quot; Cha & quot;,-19739 ),
Array ("chai",-19728 ),
Array ("Chan",-19725 ),
Array ("Chang",-19715 ),
Array ("Chao",-19540 ),
Array (& quot; che & quot;,-19531 ),
Array ("Chen",-19525 ),
Array ("Cheng",-19515 ),
Array ("Chi",-19500 ),
Array (& quot; Chong & quot;,-19484 ),
Array ("Chou",-19479 ),
Array ("chu",-19467 ),
Array ("Chuai",-19289 ),
Array ("Chuan",-19288 ),
Array ("Chuang",-19281 ),
Array ("Chui",-19275 ),
Array (& quot; Chun & quot;,-19270 ),
Array ("Chuo",-19263 ),
Array ("Ci",-1, 19261 ),
Array (& quot; Cong & quot;,-19249 ),
Array ("cou",-19243 ),
Array ("Cu",-19242 ),
Array ("Cuan",-19238 ),
Array ("Cui",-19235 ),
Array (& quot; Cun & quot;,-19227 ),
Array ("CuO",-19224 ),
Array ("da",-19218 ),
Array ("Dai",-19212 ),
Array ("Dan",-19038 ),
Array ("dang",-19023 ),
Array ("Dao",-19018 ),
Array (& quot; De & quot;,-19006 ),
Array (& quot; Deng & quot;,-19003 ),
Array ("Di",-18996 ),
Array ("Dian",-18977 ),
Array ("Diao",-18961 ),
Array (& quot; die & quot;,-18952 ),
Array (& quot; DING & quot;,-18783 ),
Array ("Diu",-18774 ),
Array ("Dong",-18773 ),
Array ("dou",-18763 ),
Array (& quot; Du & quot;,-18756 ),
Array ("Duan",-18741 ),
Array (& quot; DUI & quot;,-18735 ),
Array ("Dun",-18731 ),
Array (& quot; duo & quot;,-18722 ),
Array (& quot; E & quot;,-18710 ),
Array ("en",-18697 ),
Array ("er",-18696 ),
Array (& quot; fa & quot;,-18526 ),
Array ("fan",-18518 ),
Array ("fang",-18501 ),
Array ("fei",-18490 ),
Array ("Fen",-18478 ),
Array ("Feng",-18463 ),
Array ("FO",-18448 ),
Array ("fou",-18447 ),
Array (& quot; Fu & quot;,-18446 ),
Array (& quot; GA & quot;,-18239 ),
Array ("Gai",-18237 ),
Array ("Gan",-18231 ),
Array ("Gang",-18220 ),
Array (& quot; Gao & quot;,-18211 ),
Array (& quot; GE & quot;,-18201 ),
Array (& quot; gei & quot;,-18184 ),
Array (& quot; Gen & quot;,-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 (& quot; GUI & quot;,-17947 ),
Array ("gun",-17931 ),
Array (& quot; Guo & quot;,-17928 ),
Array (& quot; Ha & quot;,-17922 ),
Array ("Hai",-17759 ),
Array ("Han",-17752 ),
Array ("hang",-17733 ),
Array (& quot; Hao & quot;,-17730 ),
Array ("he",-17721 ),
Array ("Hei",-17703 ),
Array ("bytes",-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 (& quot; Jian & quot;,-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 (& quot; Ka & quot;,-16474 ),
Array ("Kai",-16470 ),
Array (& quot; Kan & quot;,-16465 ),
Array ("Kang",-16459 ),
Array ("kao",-16452 ),
Array ("Ke",-16448 ),
Array ("Ken",-16433 ),
Array (& quot; Keng & quot;,-16429 ),
Array ("Kong",-16427 ),
Array ("Kou",-16423 ),
Array (& quot; Ku & quot;,-16419 ),
Array ("Kua",-16412 ),
Array ("Kuai",-16407 ),
Array ("Kuan",-16403 ),
Array ("Kuang",-16401 ),
Array ("Kui",-16393 ),
Array ("Kun",-16220 ),
Array (& quot; Kuo & quot;,-16216 ),
Array (& quot; la & quot;,-16212 ),
Array (& quot; LAI & quot;,-16205 ),
Array ("Lan",-1, 16202 ),
Array (& quot; lang & quot;,-16187 ),
Array (& quot; Lao & quot;,-16180 ),
Array (& quot; Le & quot;,-16171 ),
Array ("lei",-1, 16169 ),
Array (& quot; Leng & quot;,-16158 ),
Array ("Li",-16155 ),
Array ("Lia",-15959 ),
Array ("Lian",-15958 ),
Array ("Liang",-15944 ),
Array ("liao",-15933 ),
Array (& quot; lie & quot;,-15920 ),
Array ("Lin",-15915 ),
Array (& quot; Ling & quot;,-15903 ),
Array ("Liu",-15889 ),
Array (& quot; long & quot;,-15878 ),
Array ("Lou",-1, 15707 ),
Array ("Lu",-15701 ),
Array ("LV",-15681 ),
Array ("Luan",-15667 ),
Array ("Lue",-15661 ),
Array ("Lun",-1, 15659 ),
Array ("Luo",-15652 ),
Array ("Ma",-15640 ),
Array ("Mai",-15631 ),
Array (& quot; man & quot;,-15625 ),
Array (& quot; Mang & quot;,-15454 ),
Array (& quot; Mao & quot;,-15448 ),
Array (& quot; me & quot;,-15436 ),
Array ("Mei",-15435 ),
Array ("men",-15419 ),
Array (& quot; Meng & quot;,-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",-1, 15180 ),
Array ("Na",-15165 ),
Array ("Nai",-15158 ),
Array (& quot; Nan & quot;,-15153 ),
Array ("Nang",-15150 ),
Array ("Nao",-15149 ),
Array ("ne",-1, 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 (& quot; Nin & quot;,-15110 ),
Array (& quot; Ning & quot;,-15109 ),
Array ("niu",-14941 ),
Array (& quot; Nong & quot;,-14937 ),
Array (& quot; nu & quot;,-14933 ),
Array (& quot; NV & quot;,-14930 ),
Array ("Nuan",-14929 ),
Array ("nue",-14928 ),
Array (& quot; Nuo & quot;,-14926 ),
Array (& quot; O & quot;,-14922 ),
Array ("ou",-14921 ),
Array (& quot; PA & quot;,-14914 ),
Array (& quot; Pai & quot;,-14908 ),
Array (& quot; Pan & quot;,-14902 ),
Array ("Pang",-14894 ),
Array (& quot; Pao & quot;,-14889 ),
Array ("Pei",-1, 14882 ),
Array ("pen",-14873 ),
Array ("peng",-14871 ),
Array ("Pi",-1, 14857 ),
Array ("pian",-14678 ),
Array ("Piao",-14674 ),
Array ("pie",-14670 ),
Array ("pin",-14668 ),
Array ("ping",-14663 ),
Array ("po",-14654 ),
Array ("Pu",-14645 ),
Array (& quot; Qi & quot;,-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 (& quot; que & quot;,-14159 ),
Array ("Qun",-14151 ),
Array ("ran",-14149 ),
Array ("rang",-14145 ),
Array ("Rao",-14140 ),
Array ("re",-14137 ),
Array ("Ren",-14135 ),
Array (& quot; reng & quot;,-14125 ),
Array ("Ri",-14123 ),
Array (& quot; Rong & quot;,-14122 ),
Array ("Rou",-14112 ),
Array ("Ru",-14109 ),
Array ("Ruan",-14099 ),
Array ("Rui",-14097 ),
Array ("run",-14094 ),
Array ("RuO",-14092 ),
Array (& quot; SA & quot;,-14090 ),
Array ("sai",-14087 ),
Array ("San",-14083 ),
Array ("sang",-13917 ),
Array (& quot; Sao & quot;,-13914 ),
Array (& quot; se & quot;,-13910 ),
Array ("Sen",-1, 13907 ),
Array (& quot; Seng & quot;,-13906 ),
Array (& quot; Sha & quot;,-13905 ),
Array ("Shai",-13896 ),
Array (& quot; Shan & quot;,-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 (& quot; Shua & quot;,-13406 ),
Array ("Shuai",-13404 ),
Array ("Shuan",-13400 ),
Array ("Shuang",-13398 ),
Array ("Shui",-13395 ),
Array ("Shun",-13391 ),
Array ("Shuo",-13387 ),
Array ("Si",-1, 13383 ),
Array ("song",-13367 ),
Array ("Sou",-13359 ),
Array ("Su",-13356 ),
Array ("Suan",-13343 ),
Array ("Sui",-13340 ),
Array ("sun",-13329 ),
Array (& quot; suo & quot;,-13326 ),
Array (& quot; TA & quot;,-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 (& quot; Tuan & quot;,-12860 ),
Array ("Tui",-12858 ),
Array (& quot; Tun & quot;,-12852 ),
Array (& quot; Tuo & quot;,-12849 ),
Array (& quot; Wa & quot;,-12838 ),
Array ("Wai",-12831 ),
Array (& quot; Wan & quot;,-12829 ),
Array ("Wang",-12812 ),
Array ("wei",-12802 ),
Array ("Wen",-12607 ),
Array ("Weng",-1, 12597 ),
Array ("wo",-12594 ),
Array ("Wu",-12585 ),
Array ("Xi",-12556 ),
Array (& quot; Xia & quot;,-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 (& quot; Yin & quot;,-11536 ),
Array ("ying",-11358 ),
Array ("yo",-11340 ),
Array (& quot; Yong & quot;,-11339 ),
Array (& quot; You & quot;,-11324 ),
Array ("yu",-11303 ),
Array ("Yuan",-11097 ),
Array ("Yue",-11077 ),
Array (& quot; Yun & quot;,-11067 ),
Array (& quot; za & quot;,-11055 ),
Array ("Zai",-11052 ),
Array (& quot; Zan & quot;,-11045 ),
Array ("Zang",-11041 ),
Array ("Zao",-11038 ),
Array ("ze",-11024 ),
Array ("Zei",-11020 ),
Array ("Zen",-11019 ),
Array (& quot; Zeng & quot;,-11018 ),
Array (& quot; Zha & quot;,-11014 ),
Array ("Zhai",-10838 ),
Array ("Zhan",-10832 ),
Array ("Zhang",-10815 ),
Array ("Zhao",-10800 ),
Array ("zhe",-10790 ),
Array ("Zhen",-10780 ),
Array ("zheng",-10764 ),
Array (& quot; Zhi & quot;,-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 (& quot; Zou & quot;,-10274 ),
Array ("Zu",-10270 ),
Array ("Zuan",-10262 ),
Array (& quot; Zui & quot;,-10260 ),
Array ("Zun",-10256 ),
Array (& quot; Zuo & quot;,-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 & gt; 160 ){
$ Q = ord (substr ($ STR, ++ $ I, 1 ));
$ P = $ p * 256 + $ q-65536;
}
$ Ret. = g ($ P );
}
Return $ ret;
}
Echo C ($ Hz );
?>
<Form method = post>
Enter Chinese characters here: <input name = Hz>
</Form>