本文实例讲述了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
|
<?php
$limit = array ( //gb2312 拼音排序
array (45217,45252), //A
array (45253,45760), //B
array (45761,46317), //C
array (46318,46825), //D
array (46826,47009), //E
array (47010,47296), //F
array (47297,47613), //G
array (47614,48118), //H
array (0,0), //I
array (48119,49061), //J
array (49062,49323), //K
array (49324,49895), //L
array (49896,50370), //M
array (50371,50613), //N
array (50614,50621), //O
array (50622,50905), //P
array (50906,51386), //Q
array (51387,51445), //R
array (51446,52217), //S
array (52218,52697), //T
array (0,0), //U
array (0,0), //V
array (52698,52979), //W
array (52980,53688), //X
array (53689,54480), //Y
array (54481,55289), //Z
);
$str = "A:这是一个测试程序1" ;
$str = iconv( "UTF-8" , "gb2312" , $str );
echo $str . "</br>" ;
$i =0;
while ( $i < strlen ( $str ) ) {
$tmp =bin2hex( substr ( $str , $i ,1));
if ( $tmp >= 'B0' ){ //汉字的开始
$t =getLetter(hexdec(bin2hex( substr ( $str , $i ,2))));
printf( "%c" , $t ==-1 ? '*' : $t );
$i +=2;
}
else {
printf( "%s" , substr ( $str , $i ,1));
$i ++;
}
}
function getLetter( $num ){
global $limit ;
$char_index =65;
foreach ( $limit as $k => $v ){
if ( $num >= $v [0] && $num <= $v [1]){
$char_index += $k ;
return $char_index ;
}
}
return -1;
}
?>
|
希望本文所述对大家的php程序设计有所帮助。