初始版本
This commit is contained in:
463
application/libraries/pinyin/getpinyin.php
Executable file
463
application/libraries/pinyin/getpinyin.php
Executable file
@@ -0,0 +1,463 @@
|
||||
<?php
|
||||
class Getpinyin {
|
||||
private $pylist = 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
|
||||
);
|
||||
//全部拼音
|
||||
public function getAllPY($chinese, $delimiter = '', $length = 0) {
|
||||
$py = $this->zh_to_pys($chinese, $delimiter);
|
||||
if($length) {
|
||||
$py = substr($py, 0, $length);
|
||||
}
|
||||
return $py;
|
||||
}
|
||||
//拼音首个字母
|
||||
public function getFirstPY($chinese){
|
||||
$s1 = iconv('UTF-8', 'gb2312', $chinese);
|
||||
|
||||
$s2 = iconv('gb2312', 'UTF-8', $s1);
|
||||
|
||||
$chinese = $s2 == $chinese ? $s1 : $chinese;
|
||||
$result = '' ;
|
||||
for ($i=0; $i<strlen($chinese); $i++) {
|
||||
$p = ord(substr($chinese,$i,1));
|
||||
if ($p>160) {
|
||||
$q = ord(substr($chinese,++$i,1));
|
||||
$p = $p*256 + $q - 65536;
|
||||
}
|
||||
$result .= substr($this->zh_to_py($p),0,1);
|
||||
}
|
||||
return $result ;
|
||||
}
|
||||
|
||||
|
||||
//-------------------中文转拼音--------------------------------//
|
||||
private function zh_to_py($num, $blank = '') {
|
||||
if($num>0 && $num<160 ) {
|
||||
return chr($num);
|
||||
} elseif ($num<-20319||$num>-10247) {
|
||||
return $blank;
|
||||
} else {
|
||||
foreach ($this->pylist as $py => $code) {
|
||||
if($code > $num) break;
|
||||
$result = $py;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function zh_to_pys($chinese, $delimiter = ' ', $first=0){
|
||||
$result = array();
|
||||
for($i=0; $i<strlen($chinese); $i++) {
|
||||
$p = ord(substr($chinese,$i,1));
|
||||
if($p>160) {
|
||||
$q = ord(substr($chinese,++$i,1));
|
||||
$p = $p*256 + $q - 65536;
|
||||
}
|
||||
$result[] = $this->zh_to_py($p);
|
||||
if ($first) {
|
||||
return $result[0];
|
||||
}
|
||||
}
|
||||
return implode($delimiter, $result);
|
||||
}
|
||||
}
|
||||
//-------------------------中文转拼音结束--------------------------------//
|
||||
//中文是双字节,所以需要两个字节连接起来(ASCII码的范围是在161-255)
|
||||
?>
|
||||
Reference in New Issue
Block a user