本文实例讲述了PHP常用函数之获取汉字首字母功能。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
//获取汉字的首字母
function getFirstCharters( $str )
{
if ( empty ( $str )) {
return '' ;
}
//取出参数字符串中的首个字符
$temp_str = substr ( $str ,0,1);
if (ord( $temp_str ) > 127){
$str = substr ( $str ,0,3);
} else {
$str = $temp_str ;
$fchar = ord( $str {0});
if ( $fchar >= ord( 'A' ) && $fchar <= ord( 'z' )){
return strtoupper ( $temp_str );
} else {
return null;
}
}
$s1 = iconv( 'UTF-8' , 'gb2312//IGNORE' , $str );
if ( empty ( $s1 )){
return null;
}
$s2 = iconv( 'gb2312' , 'UTF-8' , $s1 );
if ( empty ( $s2 )){
return null;
}
$s = $s2 == $str ? $s1 : $str ;
$asc = ord( $s {0}) * 256 + ord( $s {1}) - 65536;
if ( $asc >= -20319 && $asc <= -20284)
return 'A' ;
if ( $asc >= -20283 && $asc <= -19776)
return 'B' ;
if ( $asc >= -19775 && $asc <= -19219)
return 'C' ;
if ( $asc >= -19218 && $asc <= -18711)
return 'D' ;
if ( $asc >= -18710 && $asc <= -18527)
return 'E' ;
if ( $asc >= -18526 && $asc <= -18240)
return 'F' ;
if ( $asc >= -18239 && $asc <= -17923)
return 'G' ;
if ( $asc >= -17922 && $asc <= -17418)
return 'H' ;
if ( $asc >= -17417 && $asc <= -16475)
return 'J' ;
if ( $asc >= -16474 && $asc <= -16213)
return 'K' ;
if ( $asc >= -16212 && $asc <= -15641)
return 'L' ;
if ( $asc >= -15640 && $asc <= -15166)
return 'M' ;
if ( $asc >= -15165 && $asc <= -14923)
return 'N' ;
if ( $asc >= -14922 && $asc <= -14915)
return 'O' ;
if ( $asc >= -14914 && $asc <= -14631)
return 'P' ;
if ( $asc >= -14630 && $asc <= -14150)
return 'Q' ;
if ( $asc >= -14149 && $asc <= -14091)
return 'R' ;
if ( $asc >= -14090 && $asc <= -13319)
return 'S' ;
if ( $asc >= -13318 && $asc <= -12839)
return 'T' ;
if ( $asc >= -12838 && $asc <= -12557)
return 'W' ;
if ( $asc >= -12556 && $asc <= -11848)
return 'X' ;
if ( $asc >= -11847 && $asc <= -11056)
return 'Y' ;
if ( $asc >= -11055 && $asc <= -10247)
return 'Z' ;
return rare_words( $asc );
}
//百家姓中的生僻字
function rare_words( $asc = '' ){
$rare_arr = array (
-3652=> array ( 'word' => "窦" , 'first_char' => 'D' ),
-8503=> array ( 'word' => "奚" , 'first_char' => 'X' ),
-9286=> array ( 'word' => "酆" , 'first_char' => 'F' ),
-7761=> array ( 'word' => "岑" , 'first_char' => 'C' ),
-5128=> array ( 'word' => "滕" , 'first_char' => 'T' ),
-9479=> array ( 'word' => "邬" , 'first_char' => 'W' ),
-5456=> array ( 'word' => "臧" , 'first_char' => 'Z' ),
-7223=> array ( 'word' => "闵" , 'first_char' => 'M' ),
-2877=> array ( 'word' => "裘" , 'first_char' => 'Q' ),
-6191=> array ( 'word' => "缪" , 'first_char' => 'M' ),
-5414=> array ( 'word' => "贲" , 'first_char' => 'B' ),
-4102=> array ( 'word' => "嵇" , 'first_char' => 'J' ),
-8969=> array ( 'word' => "荀" , 'first_char' => 'X' ),
-4938=> array ( 'word' => "於" , 'first_char' => 'Y' ),
-9017=> array ( 'word' => "芮" , 'first_char' => 'R' ),
-2848=> array ( 'word' => "羿" , 'first_char' => 'Y' ),
-9477=> array ( 'word' => "邴" , 'first_char' => 'B' ),
-9485=> array ( 'word' => "隗" , 'first_char' => 'K' ),
-6731=> array ( 'word' => "宓" , 'first_char' => 'M' ),
-9299=> array ( 'word' => "郗" , 'first_char' => 'X' ),
-5905=> array ( 'word' => "栾" , 'first_char' => 'L' ),
-4393=> array ( 'word' => "钭" , 'first_char' => 'T' ),
-9300=> array ( 'word' => "郜" , 'first_char' => 'G' ),
-8706=> array ( 'word' => "蔺" , 'first_char' => 'L' ),
-3613=> array ( 'word' => "胥" , 'first_char' => 'X' ),
-8777=> array ( 'word' => "莘" , 'first_char' => 'S' ),
-6708=> array ( 'word' => "逄" , 'first_char' => 'P' ),
-9302=> array ( 'word' => "郦" , 'first_char' => 'L' ),
-5965=> array ( 'word' => "璩" , 'first_char' => 'Q' ),
-6745=> array ( 'word' => "濮" , 'first_char' => 'P' ),
-4888=> array ( 'word' => "扈" , 'first_char' => 'H' ),
-9309=> array ( 'word' => "郏" , 'first_char' => 'J' ),
-5428=> array ( 'word' => "晏" , 'first_char' => 'Y' ),
-2849=> array ( 'word' => "暨" , 'first_char' => 'J' ),
-7206=> array ( 'word' => "阙" , 'first_char' => 'Q' ),
-4945=> array ( 'word' => "殳" , 'first_char' => 'S' ),
-9753=> array ( 'word' => "夔" , 'first_char' => 'K' ),
-10041=> array ( 'word' => "厍" , 'first_char' => 'S' ),
-5429=> array ( 'word' => "晁" , 'first_char' => 'C' ),
-2396=> array ( 'word' => "訾" , 'first_char' => 'Z' ),
-7205=> array ( 'word' => "阚" , 'first_char' => 'K' ),
-10049=> array ( 'word' => "乜" , 'first_char' => 'N' ),
-10015=> array ( 'word' => "蒯" , 'first_char' => 'K' ),
-3133=> array ( 'word' => "竺" , 'first_char' => 'Z' ),
-6698=> array ( 'word' => "逯" , 'first_char' => 'L' ),
-9799=> array ( 'word' => "俟" , 'first_char' => 'Q' ),
-6749=> array ( 'word' => "澹" , 'first_char' => 'T' ),
-7220=> array ( 'word' => "闾" , 'first_char' => 'L' ),
-10047=> array ( 'word' => "亓" , 'first_char' => 'Q' ),
-10005=> array ( 'word' => "仉" , 'first_char' => 'Z' ),
-3417=> array ( 'word' => "颛" , 'first_char' => 'Z' ),
-6431=> array ( 'word' => "驷" , 'first_char' => 'S' ),
-7226=> array ( 'word' => "闫" , 'first_char' => 'Y' ),
-9293=> array ( 'word' => "鄢" , 'first_char' => 'Y' ),
-6205=> array ( 'word' => "缑" , 'first_char' => 'G' ),
-9764=> array ( 'word' => "佘" , 'first_char' => 'S' ),
-9818=> array ( 'word' => "佴" , 'first_char' => 'N' ),
-9509=> array ( 'word' => "谯" , 'first_char' => 'Q' ),
-3122=> array ( 'word' => "笪" , 'first_char' => 'D' ),
-9823=> array ( 'word' => "佟" , 'first_char' => 'T' ),
);
if ( array_key_exists ( $asc , $rare_arr ) && $rare_arr [ $asc ][ 'first_char' ]){
return $rare_arr [ $asc ][ 'first_char' ] ;
} else {
return null;
}
}
//测试:
echo getFirstCharters( '窦' );
|
运行结果:
D
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://www.cnblogs.com/gyfluck/p/8521259.html