汉字转换拼音类
class cntopy {
/**
* @var array $chineseSpellList 拼音编码对应表
* @access private
*/
私人 $chineseSpellList = array(
'a'=>-20319,
'ai'=>-20317,
'an'=>-20304,
'ang'=>-20295,
'ao'=>-20292,
'ba'=>-20283,
'bai'=>-20265,
'禁令'=>-20257,
'bang'=>-20242,
'bao'=>-20230,
'北'=>-20051,
'本'=>-20036,
'beng'=>-20032,
'bi'=>-20026,
'bian'=>-20002,
'biao'=>-19990,
'bie'=>-19986,
'bin'=>-19982,
'bing'=>-19976,
'bo'=>-19805,
'bu'=>-19784,
'ca'=>-19775,
'cai'=>-19774,
'可以'=>-19763,
'cang'=>-19756,
'cao'=>-19751,
'ce'=>-19746,
'ceng'=>-19741,
'cha'=>-19739,
'柴'=>-19728,
'chan'=>-19725,
'chang'=>-19715,
'chao'=>-19540,
'che'=>-19531,
'陈'=>-19525,
'程'=>-19515,
'chi'=>-19500,
'chong'=>-19484,
'chou'=>-19479,
'chu'=>-19467,
'chuai'=>-19289,
'川'=>-19288,
'创'=>-19281,
'chui'=>-19275,
'chun'=>-19270,
'chuo'=>-19263,
'ci'=>-19261,
'丛'=>-19249,
'cou'=>-19243,
'cu'=>-19242,
'cuan'=>-19238,
'cui'=>-19235,
'cun'=>-19227,
'cuo'=>-19224,
'da'=>-19218,
'dai'=>-19212,
'丹'=>-19038,
'当'=>-19023,
'dao'=>-19018,
'de'=>-19006,
'邓'=>-19003,
'di'=>-18996,
'dian'=>-18977,
'diao'=>-18961,
'死'=>-18952,
'叮'=>-18783,
'diu'=>-18774,
'东'=>-18773,
'dou'=>-18763,
'du'=>-18756,
'段'=>-18741,
'dui'=>-18735,
'dun'=>-18731,
'二重奏'=>-18722,
'e'=>-18710,
'en'=>-18697,
'呃'=>-18696,
'fa'=>-18526,
'粉丝'=>-18518,
'fang'=>-18501,
'fei'=>-18490,
'分'=>-18478,
'feng'=>-18463,
'fo'=>-18448,
'fou'=>-18447,
'fu'=>-18446,
'ga'=>-18239,
'gai'=>-18237,
'gan'=>-18231,
'帮派'=>-18220,
'高'=>-18211,
'ge'=>-18201,
'gei'=>-18184,
'gen'=>-18183,
'更'=>-18181,
'锣'=>-18012,
'苟'=>-17997,
'gu'=>-17988,
'卦'=>-17970,
'guai'=>-17964,
'guan'=>-17961,
'光'=>-17950,
'gui'=>-17947,
'枪'=>-17931,
'guo'=>-17928,
'哈'=>-17922,
'hai'=>-17759,
'han'=>-17752,
'挂'=>-17733,
'hao'=>-17730,
'他'=>-17721,
'hei'=>-17703,
'母鸡'=>-17701,
'heng'=>-17697,
'红'=>-17692,
'hou'=>-17683,
'hu'=>-17676,
'hua'=>-17496,
'huai'=>-17487,
'欢'=>-17482,
'黄'=>-17468,
'hui'=>-17454,
'hun'=>-17433,
'huo'=>-17427,
'ji'=>-17417,
'jia'=>-17202,
'jian'=>-17185,
'江'=>-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,
'康'=>-16459,
'kao'=>-16452,
'ke'=>-16448,
'ken'=>-16433,
'keng'=>-16429,
'kong'=>-16427,
'kou'=>-16423,
'ku'=>-16419,
'kua'=>-16412,
'快'=>-16407,
'宽'=>-16403,
'匡'=>-16401,
'kui'=>-16393,
'kun'=>-16220,
'kuo'=>-16216,
'la'=>-16212,
'lai'=>-16205,
'lan'=>-16202,
'lang'=>-16187,
'老挝'=>-16180,
'le'=>-16171,
'lei'=>-16169,
'leng'=>-16158,
'li'=>-16155,
'lia'=>-15959,
'lian'=>-15958,
'亮'=>-15944,
'辽'=>-15933,
'谎言'=>-15920,
'lin'=>-15915,
'ling'=>-15903,
'刘'=>-15889,
'长'=>-15878,
'lou'=>-15707,
'lu'=>-15701,
'lv'=>-15681,
'luan'=>-15667,
'lue'=>-15661,
'lun'=>-15659,
'罗'=>-15652,
'ma'=>-15640,
'mai'=>-15631,
'男人'=>-15625,
'mang'=>-15454,
'毛'=>-15448,
'我'=>-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,
'中'=>-10544,
'周'=>-10533,
'zhu'=>-10519,
'zhua'=>-10331,
'zhuai'=>-10329,
'zhuan'=>-10328,
'庄'=>-10322,
'zhui'=>-10315,
'准'=>-10309,
'zhuo'=>-10307,
'zi'=>-10296,
'宗'=>-10281,
'zou'=>-10274,
'zu'=>-10270,
'zuan'=>-10262,
'zui'=>-10260,
'zun'=>-10256,
'zuo'=>-10254
);
/**
* 取汉字所有拼音
* @param string $chinese 要转换的汉字
* @param string $delimiter 分隔符
* @param int $length 返回的长度
* @return string
*/
公共函数 getFullSpell($chinese, $delimiter = ' ', $length =
0) {
$spell = $this->getChineseSpells($chinese, $delimiter);
if ($length) {
$spell = substr($spell, 0, $length);
}
返回 $spell;
}
/**
* 取汉字第一个拼音
* @param string $chinese 要转换的汉字
* @param int $length 返回的长度
* @return string
*/
public function getFirstSpell($chinese, $length = 0) {
$spell = $this->getChineseSpells($chinese, ' ', 1);
if ($length) {
$spell = substr($spell, 0, $length);
}
返回 $spell;
}
/**
* 取一个汉字码对应的拼音
* @param int $num 汉字码
* @param string $blank 空白字符
* @return string
*/
私有函数 getChineseSpell ($num, $blank = '') {
if ( $num>0 && $num
返回 chr($num);
} elseif ($num-10247) {
返回$空白;
} 其他 {
foreach ($this->chineseSpellList as $spell => $code)
{
if ($code > $num) 中断;
$结果 = $拼写;
}
返回$结果;
}
}
/**
* 取汉字拼音
* @param string $chinese 要转换的汉字
* @param string $delimiter 分隔符
* @param int $first 是否只返回第一个
* @return string
*/
私有函数 getChineseSpells($chinese, $delimiter = ' ',
$first=0)
{
$结果 = array();
for ($i=0; $i
如果 ($p>160) {
$q = ord(substr($chinese, $i,1));
$p = $p*256 $q - 65536;
}
$result[] = $this->getChineseSpell($p);
if ($first) {
返回$结果[0];
}
}
return implode($delimiter, $result);
}
}