| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
FedUzi
9年前发布

汉字转化为拼音类

Pinyin.class.php ~ 15KB         

<?php  /*  汉字转化为拼音类   */  class Pinyin{      /**    * 汉字ASCII码库    *     * @var array    */   protected $lib;         /**    * 构造函数    *     * @return void    */   public function __construct(){       }   /**    * 汉字转化并输出拼音    *     * @param string $str  所要转化拼音的汉字    * @param boolean $utf8  汉字编码是否为utf8    * @return string    */   public function output($str, $utf8 = true)   {      //参数分析    if (!$str) {     return false;    }        //编码转换.    $str = ($utf8==true) ? $this->iconvStr('utf-8', 'gbk', $str) : $str;    $num = strlen($str);        $pinyin = '';    for ($i=0; $i<$num; $i++) {     $temp = ord(substr($str, $i, 1));     if ($temp>160) {          $temp2=ord(substr($str,++$i,1));      $temp=$temp*256+$temp2-65536;     }     $pinyin .= $this->num2str($temp);    }          //输出的拼音编码转换.    return ($utf8==true) ? $this->iconvStr('gbk', 'utf-8', $pinyin) : $pinyin;   }   /**    * 将ASCII编码转化为字符串.    *     * @param integer $num    * @return string    */   protected function num2str($num) {          if (!$this->lib) {        $this->parse_lib();    }          if ($num>0&&$num<160) {              return chr($num);    } elseif($num<-20319||$num>-10247) {          return '';    } else{     $total =sizeof($this->lib)-1;     for($i=$total; $i>=0; $i--) {      if($this->lib[$i][1]<=$num) {            break;      }     }          return $this->lib[$i][0];    }   }     /**    * 返回汉字编码库    *     * @return array    */   protected function parse_lib() {        return $this->lib = 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("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),    );   }      //编码转换   protected function iconvStr($from,$to,$fContents)   {     if(is_string($fContents) )      {      if(function_exists('mb_convert_encoding'))      {       return mb_convert_encoding ($fContents, $to, $from);      }      else if(function_exists('iconv'))      {       return iconv($from,$to,$fContents);      }      else      {       return $fContents;      }    }   }   /**    * 析构函数    *     * @access public    * @return void    */   public function __destruct()   {      if (isset($this->lib)) {     unset($this->lib);    }   }  }  ?>