PHP常用函数之获取汉字首字母功能示例

吾爱主题 阅读:123 2021-09-09 16:15:00 评论:0

本文实例讲述了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

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容