ホームページ  >  記事  >  バックエンド開発  >  PHPは中国語の文字列の最初の文字を取得します

PHPは中国語の文字列の最初の文字を取得します

WBOY
WBOYオリジナル
2016-07-25 08:45:50916ブラウズ
  1. $limit = array( //gb2312 拼音排序
  2. array(45217,45252), //A
  3. array(45253,45760), //B
  4. array(45761,46317), / /C
  5. 配列(46318,46825)、//D
  6. 配列(46826,47009)、//E
  7. 配列(47010,47296)、//F
  8. 配列(47297,47613)、//G
  9. 配列(47614) ,48118), //H
  10. 配列(0,0), //I
  11. 配列(48119,49061), //J
  12. 配列(49062,49323), //K
  13. 配列(49324,49895), // L
  14. 配列(49896,50370), //M
  15. 配列(50371,50613), //N
  16. 配列(50614,50621), //O
  17. 配列(50622,50905), //P
  18. 配列(50906, 51386), //Q
  19. 配列(51387,51445), //R
  20. 配列(51446,52217), //S
  21. 配列(52218,52697), //T
  22. 配列(0,0), //U
  23. 配列(0,0), //V
  24. 配列(52698,52979), //W
  25. 配列(52980,53688), //X
  26. 配列(53689,54480), //Y
  27. 配列(54481,55289) ), //Z
  28. );
  29. $str="A:这是一个测试程序1";
  30. $str= iconv("UTF-8","gb2312", $str);
  31. echo $str."
    ";
  32. $i=0;
  33. while($i $tmp=bin2hex(substr($str,$i,1));
  34. if($tmp> ='B0'){ //汉字の始まり
  35. $t=getLetter(hexdec(bin2hex(substr($str,$i,2))));
  36. printf("%c",$t==-1 ? '*' : $t );
  37. $i+=2;
  38. }
  39. else{
  40. printf("%s",substr($str,$i,1));
  41. $i++;
  42. }
  43. }
  44. 関数getLetter($num){
  45. global $limit;
  46. $char_index=65;
  47. foreach($limit as $k=>$v){
  48. if($num>=$v[0] && $num<=$ v[1]){
  49. $char_index+=$k;
  50. return $char_index;
  51. }
  52. }
  53. return -1;
  54. }
  55. ?>
复制代

首字母、PHP


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。