漢字をピンインに変換する(php版)
多くのサーバーは中国語のファイル名をうまくサポートしていません。それを解決する良い方法はありますか? ? ?現在の解決策は通常、ID を生成し、その ID をファイル名として使用することです。Web ページに URL に中国語の文字が含まれている場合、エラーが発生することがよくあります。現在の解決策は、通常、urlencode エンコードを使用することです。はるかに優れています
原則: 多次元配列を使用します
1. インデックスを追加します
$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("チャイ"、-19728)、
array("ちゃん"、-19725)、
array("チャン"、-19715)、
array("チャオ"、-19540)、
array ("チェ",-19531),
array ("チェン",-19525),
array("チェン",-19515),
array("チー",-19500),
array("チョン",- 19484),
array("チョウ",-19479),
array("チュウ",-19467),
array("チュウアイ",-19289),
array("チュアン",-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("ダン",-19038) 、
array("ダン",-19023),
array("ダオ",-19018),
array("デ",-19006),
array("デン"、-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("feng", -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("ギャン"、- 18231)、
array("ギャン"、-18220)、
array("ガオ"、-18211)、
array("ゲ"、-18201)、
array("芸",-18184),
array("玄",-18183),
array("玄",-18181),
array("功",-18012),
array("郷", -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("ハイ",-17759) ,
array("ハン",-17752),
array("ハン",-17733),
array("ハオ",-17730),
array( "彼",-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("か"、- 16474)、
array("かい"、-16470)、
array("かん"、-16465)、
array("かん"、-16459)、
array("kao",-16452),
array("ke",-16448),
array("ken",-16433),
array("ken",-16429),
array("kong", -16427)、
array("こう"、-16423 )、
array("く"、-16419)、
array("くあ"、-16412)、
array("くあい"、-16407)、
array ("クアン",-16403)、
array("クアン",-16401)、
array("クイ",-16393)、
array("クン",-16220)、
array("クオ",- 16216),
array("la",-16212) ,
array("lai",-16205),
array("lan",-16202),
array("lang",-16187),
array( "ラオ",-16180),
array("le ",-16171),
array("lei",-16169),
array("leng",-16158),
array("li",-16155 )、
array("liao"、-15959)、
array("lian"、-15958)、
array("liang"、-15944)、
array("liao"、-15933)、
array("嘘",-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)、
配列("マン",-15625)、
配列("マン",-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("ム",-15180),
array("な",-15165),
array("ナイ",-15158),
array("ナン",-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("ニャオ",-15119),
array("ニウ",-15117),
array("ニン",-15110),
array("ニング",-15109),
array("ニウ",-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("ぱい",-14908),
array("パン",-14902),
array("パン",-14894),
array("パオ",-14889),
array("ペイ" 、-14882)、
array("ペン"、-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("ren",-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("シャオ"、-13870)、
array("彼女"、-13859)、
array("シェン"、-13847)、
array("シェン"、-13831)、
array("シ",-13658),
array("シュア",-13611),
array("シュア",-13601),
array("シュア",-13406),
array("シュアイ", -13404)、
array("シュアン"、-13400)、
array("シュアン"、-13398)、
array("シュイ"、-13395)、
array("シュアン"、-13391)、
array ("集",-13387),
array("し",-13383),
array("歌",-13367),
array("想",-13359),
array("す",- 13356)、
array("スアン"、-13343)、
array("スイ"、-13340)、
array("サン"、-13329)、
array("スオ"、-13326)、
array( "た",-13318),
array("たい",-13147),
array("たん",-13138),
array("たん",-13120),
array("たお",-13107 )、
array("te"、-13096)、
array("teng"、-13095)、
array("ti"、-13091)、
array("tian"、-13076)、
array("ティアオ",-13068),
array("ネクタイ",-13063),
array("ティング",-13060),
array("トン",-12888),
array("トウ",-12875) 、
array("tu",-12871)、
array("tuan",-12860)、
array("tui",-12858)、
array("tun",-12852)、
array("tuo" ",-12849)、
array("わ"、-12838)、
array("わい"、-12831)、
array("わん"、-12829)、
array("王"、-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( "よ",-11340),
array("永",-11339),
array("あなた",-11324),
array("ゆ",-11303),
array("元",-11097 ),
array("yue",-11077),
array("yun",-11067),
array("za",-11055),
array("zai",-11052),
array("ザン",-11045),
array("ザン",-11041),
array("ザオ",-11038),
array("ゼ",-11024),
array("ゼイ",-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("鄭",-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 ("ずあん",-10262),
array("ずい",-10260),
array("ずん",-10256),
array("ずお",-10254)
);
関数 g($num){
グローバル $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;}
$d[$i][0] を返します;
}
}
function c($str){
$ret="";
for($i=0;$i
if($p>160){
$q=ord(substr($str,++$i,1));
$p=$p*256+$q-65536;
}
$ret.=g($p);
}
$ret を返す;
}
echo c($hz);
?>
<フォームメソッド=ポスト>
请在此处输入中文:
フォーム>