php 取得字符串的首字母(适用于中文字符串)

前端之家收集整理的这篇文章主要介绍了php 取得字符串的首字母(适用于中文字符串)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
PHP取得字符串的首字母(适用于中文字符串)感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!
  1. /**
  2. * PHP取得字符串的首字母(适用于中文字符串)
  3. *
  4. * @param
  5. * @arrange 网: www.www.jb51.cc
  6. **/
  7. $limit = array( //gb2312 拼音排序
  8. array(45217,45252),//A
  9. array(45253,45760),//B
  10. array(45761,46317),//C
  11. array(46318,46825),//D
  12. array(46826,47009),//E
  13. array(47010,47296),//F
  14. array(47297,47613),//G
  15. array(47614,48118),//H
  16. array(0,0),//I
  17. array(48119,49061),//J
  18. array(49062,49323),//K
  19. array(49324,49895),//L
  20. array(49896,50370),//M
  21. array(50371,50613),//N
  22. array(50614,50621),//O
  23. array(50622,50905),//P
  24. array(50906,51386),//Q
  25. array(51387,51445),//R
  26. array(51446,52217),//S
  27. array(52218,52697),//T
  28. array(0,//U
  29. array(0,//V
  30. array(52698,52979),//W
  31. array(52980,53688),//X
  32. array(53689,54480),//Y
  33. array(54481,55289),//Z
  34. );
  35. $str="A:这是一个测试程序1";
  36. $str= iconv("UTF-8","gb2312",$str);
  37. echo $str."</br>";
  38. $i=0;
  39. while($i<strlen($str) ) {
  40. $tmp=bin2hex(substr($str,$i,1));
  41. if($tmp>='B0'){ //汉字的开始
  42. $t=getLetter(hexdec(bin2hex(substr($str,2))));
  43. printf("%c",$t==-1 ? '*' : $t );
  44. $i+=2;
  45. }
  46. else{
  47. printf("%s",substr($str,1));
  48. $i++;
  49. }
  50. }
  51. function getLetter($num){
  52. global $limit;
  53. $char_index=65;
  54. foreach($limit as $k=>$v){
  55. if($num>=$v[0] && $num<=$v[1]){
  56. $char_index+=$k;
  57. return $char_index;
  58. }
  59. }
  60. return -1;
  61. }
  62. /*** 来自编程之家 jb51.cc(jb51.cc) ***/

猜你在找的PHP相关文章