php 根据输入的汉字获得首字母

  1. function GetFirst($str) 
  2. { 
  3.     $str= iconv("UTF-8","gb2312", $str);//编码转换
  4.     if (preg_match("/^[\x7f-\xff]/", $str)) 
  5.     { 
  6.         $fchar=ord($str{0}); 
  7.         if($fchar>=ord("A") and $fchar<=ord("z") )return strtoupper($str{0}); 
  8.         $a = $str; 
  9.         $val=ord($a{0})*256+ord($a{1})-65536; 
  10.         if($val>=-20319 and $val<=-20284)return "A"; 
  11.         if($val>=-20283 and $val<=-19776)return "B"; 
  12.         if($val>=-19775 and $val<=-19219)return "C"; 
  13.         if($val>=-19218 and $val<=-18711)return "D"; 
  14.         if($val>=-18710 and $val<=-18527)return "E"; 
  15.         if($val>=-18526 and $val<=-18240)return "F"; 
  16.         if($val>=-18239 and $val<=-17923)return "G"; 
  17.         if($val>=-17922 and $val<=-17418)return "H"; 
  18.         if($val>=-17417 and $val<=-16475)return "J"; 
  19.         if($val>=-16474 and $val<=-16213)return "K"; 
  20.         if($val>=-16212 and $val<=-15641)return "L"; 
  21.         if($val>=-15640 and $val<=-15166)return "M"; 
  22.         if($val>=-15165 and $val<=-14923)return "N"; 
  23.         if($val>=-14922 and $val<=-14915)return "O"; 
  24.         if($val>=-14914 and $val<=-14631)return "P"; 
  25.         if($val>=-14630 and $val<=-14150)return "Q"; 
  26.         if($val>=-14149 and $val<=-14091)return "R"; 
  27.         if($val>=-14090 and $val<=-13319)return "S"; 
  28.         if($val>=-13318 and $val<=-12839)return "T"; 
  29.         if($val>=-12838 and $val<=-12557)return "W"; 
  30.         if($val>=-12556 and $val<=-11848)return "X"; 
  31.         if($val>=-11847 and $val<=-11056)return "Y"; 
  32.         if($val>=-11055 and $val<=-10247)return "Z"; 
  33.     }  
  34.     else 
  35.     { 
  36.         return null; 
  37.     } 
  38. } 

对于要用首字母检索数据库,非常实用! 

你可能感兴趣的:(php 根据输入的汉字获得首字母)