PHP获取汉字的拼音(全部与首字母)(转载博博客园2778085001)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP获取汉字的拼音(全部与首字母)(转载博博客园2778085001)相关的知识,希望对你有一定的参考价值。
<?php
class
GetPingYing {
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
){
$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)
$c
=
‘齐秦‘
;
for
(
$i
=0;
$i
<
strlen
(
$c
);
$i
++) {
echo
ord(
$c
[
$i
]).
‘ ‘
;
//198 235 199 216
}
echo
‘<br>‘
,
chr
(198).
chr
(235).
chr
(199).
chr
(216),
‘<br>‘
;
//测试
$PingYing
=
new
GetPingYing();
echo
‘<br>‘
,
$PingYing
->getFirstPY(
‘羽泉乐队,歌不错-推荐‘
),
‘<br>‘
;
//yqldgbc-tj
echo
$PingYing
->getAllPY(
‘羽泉乐队,歌不错-推荐‘
),
‘<br>‘
;
//yuquanleduigebucuo-tuijian
?>
以上是关于PHP获取汉字的拼音(全部与首字母)(转载博博客园2778085001)的主要内容,如果未能解决你的问题,请参考以下文章