汉字转化为拼音

原理:利用多维数组 
1.添加索引
2.遍历数组

<?
$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",-1972,
  array("chan",-19725),
  array("chang",-19715),
  array("chao",-19540),
  array("che",-19531),
  array("chen",-19525),
  array("e",-18710),
  array("en",-18697),
  array("er",-18696),
  array("fa",-18526),
  array("fan",-1851,
  array("fang",-18501),
  array("fei",-18490),
  array("fen",-1847,
  array("feng",-18463),
  array("fo",-1844,
  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",-1798,
  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("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("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("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 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>;160){
    $q=ord(substr($str,++$i,1));
    $p=$p*256+$q-65536;
   }
   $ret.=g($p);
  }
  return $ret;
}

echo c($hz);
?>;
<form method=post>;
请在此处输入中文:<input name=hz>;
</form>;

你可能感兴趣的:(汉字转化为拼音)