zoukankan      html  css  js  c++  java
  • PHP自定义函数获取汉字首字母的方法

    使用场景:城市列表等根据首字母排序的场景

     
     1 function getFirstCharter($str)
     2 {
     3   if (empty($str)) {
     4     return '';
     5   }
     6   $fchar = ord($str{0});
     7   if ($fchar >= ord('A') && $fchar <= ord('z'))
     8     return strtoupper($str{0});
     9   $s1 = iconv('UTF-8', 'gb2312', $str);
    10   $s2 = iconv('gb2312', 'UTF-8', $s1);
    11   $s = $s2 == $str ? $s1 : $str;
    12   $asc = ord($s{0}) * 256 + ord($s{1}) - 65536;
    13   if ($asc >= -20319 && $asc <= -20284)
    14     return 'A';
    15   if ($asc >= -20283 && $asc <= -19776)
    16     return 'B';
    17   if ($asc >= -19775 && $asc <= -19219)
    18     return 'C';
    19   if ($asc >= -19218 && $asc <= -18711)
    20     return 'D';
    21   if ($asc >= -18710 && $asc <= -18527)
    22     return 'E';
    23   if ($asc >= -18526 && $asc <= -18240)
    24     return 'F';
    25   if ($asc >= -18239 && $asc <= -17923)
    26     return 'G';
    27   if ($asc >= -17922 && $asc <= -17418)
    28     return 'H';
    29   if ($asc >= -17417 && $asc <= -16475)
    30     return 'J';
    31   if ($asc >= -16474 && $asc <= -16213)
    32     return 'K';
    33   if ($asc >= -16212 && $asc <= -15641)
    34     return 'L';
    35   if ($asc >= -15640 && $asc <= -15166)
    36     return 'M';
    37   if ($asc >= -15165 && $asc <= -14923)
    38     return 'N';
    39   if ($asc >= -14922 && $asc <= -14915)
    40     return 'O';
    41   if ($asc >= -14914 && $asc <= -14631)
    42     return 'P';
    43   if ($asc >= -14630 && $asc <= -14150)
    44     return 'Q';
    45   if ($asc >= -14149 && $asc <= -14091)
    46     return 'R';
    47   if ($asc >= -14090 && $asc <= -13319)
    48     return 'S';
    49   if ($asc >= -13318 && $asc <= -12839)
    50     return 'T';
    51   if ($asc >= -12838 && $asc <= -12557)
    52     return 'W';
    53   if ($asc >= -12556 && $asc <= -11848)
    54     return 'X';
    55   if ($asc >= -11847 && $asc <= -11056)
    56     return 'Y';
    57   if ($asc >= -11055 && $asc <= -10247)
    58     return 'Z';
    59   return null;
    60 }
    61 $firstChar = getFirstCharter('脚本之家');
    62 print_r($firstChar);//输出:J
    结果是:J
     
    其中:当$str是一个字符集合时,例如$str = 'afdsafdsf'  或者$str='脚本'  可以用两种方式取得字符:
    $str[0]  等同于 $str{0}

     

  • 相关阅读:
    获取最外层View
    Activity的lanuchmode
    decorview that was originally added here or java.lang.IllegalArgumentException: View not attached to window manager
    Android开源项目
    Android屏幕适配
    android获取根视图
    Nginx 安装 和 特性介绍
    kubernetes Pod控制器
    kubernetes 资源清单定义入门
    kubernetes 应用快速入门
  • 原文地址:https://www.cnblogs.com/redfire/p/7695569.html
Copyright © 2011-2022 走看看