代码一:获取字符串汉字首字母,兼容GBK和UTF-8
function
getfirstchar(
$s0
){
//获取单个汉字拼音首字母。注意:此处不要纠结。汉字拼音是没有以U和V开头的
$fchar
= ord(
$s0
{0});
if
(
$fchar
>= ord(
"A"
)
and
$fchar
<= ord(
"z"
) )
return
strtoupper
(
$s0
{0});
$s1
= iconv(
"UTF-8"
,
"gb2312"
,
$s0
);
$s2
= iconv(
"gb2312"
,
"UTF-8"
,
$s1
);
if
(
$s2
==
$s0
){
$s
=
$s1
;}
else
{
$s
=
$s0
;}
$asc
= ord(
$s
{0}) * 256 + ord(
$s
{1}) - 65536;
if
(
$asc
>= -20319
and
$asc
<= -20284)
return
"A"
;
if
(
$asc
>= -20283
and
$asc
<= -19776)
return
"B"
;
if
(
$asc
>= -19775
and
$asc
<= -19219)
return
"C"
;
if
(
$asc
>= -19218
and
$asc
<= -18711)
return
"D"
;
if
(
$asc
>= -18710
and
$asc
<= -18527)
return
"E"
;
if
(
$asc
>= -18526
and
$asc
<= -18240)
return
"F"
;
if
(
$asc
>= -18239
and
$asc
<= -17923)
return
"G"
;
if
(
$asc
>= -17922
and
$asc
<= -17418)
return
"H"
;
if
(
$asc
>= -17922
and
$asc
<= -17418)
return
"I"
;
if
(
$asc
>= -17417
and
$asc
<= -16475)
return
"J"
;
if
(
$asc
>= -16474
and
$asc
<= -16213)
return
"K"
;
if
(
$asc
>= -16212
and
$asc
<= -15641)
return
"L"
;
if
(
$asc
>= -15640
and
$asc
<= -15166)
return
"M"
;
if
(
$asc
>= -15165
and
$asc
<= -14923)
return
"N"
;
if
(
$asc
>= -14922
and
$asc
<= -14915)
return
"O"
;
if
(
$asc
>= -14914
and
$asc
<= -14631)
return
"P"
;
if
(
$asc
>= -14630
and
$asc
<= -14150)
return
"Q"
;
if
(
$asc
>= -14149
and
$asc
<= -14091)
return
"R"
;
if
(
$asc
>= -14090
and
$asc
<= -13319)
return
"S"
;
if
(
$asc
>= -13318
and
$asc
<= -12839)
return
"T"
;
if
(
$asc
>= -12838
and
$asc
<= -12557)
return
"W"
;
if
(
$asc
>= -12556
and
$asc
<= -11848)
return
"X"
;
if
(
$asc
>= -11847
and
$asc
<= -11056)
return
"Y"
;
if
(
$asc
>= -11055
and
$asc
<= -10247)
return
"Z"
;
return
NULL;
//return $s0;
}
function
pinyin_long(
$zh
){
//获取整条字符串汉字拼音首字母
$ret
=
""
;
$s1
= iconv(
"UTF-8"
,
"gb2312"
,
$zh
);
$s2
= iconv(
"gb2312"
,
"UTF-8"
,
$s1
);
if
(
$s2
==
$zh
){
$zh
=
$s1
;}
for
(
$i
= 0;
$i
<
strlen
(
$zh
);
$i
++){
$s1
=
substr
(
$zh
,
$i
,1);
$p
= ord(
$s1
);
if
(
$p
> 160){
$s2
=
substr
(
$zh
,
$i
++,2);
$ret
.= getfirstchar(
$s2
);
}
else
{
$ret
.=
$s1
;
}
}
return
$ret
;
}
echo
pinyin_long(
'*《,@#$123HAHadf一年后'
);
?>
|
输出:
代码二:获取字符串全拼,仅支持GBK
class
ChineseSpell {
//注意仅支持:GBK,故传入参数前须转码
/**
* @var array $chineseSpellList 拼音编码对应表
* @access private
*/
private
$chineseSpellList
=
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'
|