<?php
/**
- Name:
- Date: 2018/3/2
- Time: 17:09
- Author: yybin
- Email: admin@52nyg.com
*/
namespace Pinyin;
class Spell
{
/**
* 拼音字符转换图
* @var array
*/
private static $_aMaps = 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
);
/**
* 将中文编码成拼音
*
* @param string $utf8Data utf8字符集数据
* @param string $sRetFormat 返回格式 [head:首字母|all:全拼音]
*
* @return string
*/
public static function encode($utf8Data, $sRetFormat = 'head')
{
$sGBK = iconv('UTF-8', 'GBK', $utf8Data);
$aBuf = array();
for ($i = 0, $iLoop = strlen($sGBK); $i < $iLoop; $i++) {
$iChr = ord($sGBK{$i});
if ($iChr > 160)
$iChr = ($iChr << 8) + ord($sGBK{++$i}) - 65536;
if ('head' === $sRetFormat)
$aBuf[] = substr(self::zh2py($iChr), 0, 1);
else
$aBuf[] = self::zh2py($iChr);
}
if ('head' === $sRetFormat)
return implode('', $aBuf);
else
return implode(' ', $aBuf);
}
/**
* 中文转换到拼音(每次处理一个字符)
*
* @param number $iWORD 待处理字符双字节
*
* @return string 拼音
*/
private static function zh2py($iWORD)
{
if ($iWORD > 0 && $iWORD < 160) {
return chr($iWORD);
} elseif ($iWORD < -20319 || $iWORD > -10247) {
return '';
} else {
foreach (self::$_aMaps as $py => $code) {
if ($code > $iWORD) break;
$result = $py;
}
return $result;
}
}
}
如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!
txttool.com 说一段 esp56物联 查询128 IP查询