本文实例讲述了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
|
<?php
/*
* Created on 2016-12-1
*/
function getFirstCharter( $str )
{
if ( empty ( $str )) {
return '' ;
}
$fchar = ord( $str {0});
if ( $fchar >= ord( 'A' ) && $fchar <= ord( 'z' ))
return strtoupper ( $str {0});
$s1 = iconv( 'UTF-8' , 'gb2312' , $str );
$s2 = iconv( 'gb2312' , 'UTF-8' , $s1 );
$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 null;
}
$firstChar = getFirstCharter( '服务器之家' );
print_r( $firstChar ); //输出:J
?>
|
希望本文所述对大家PHP程序设计有所帮助。