• PHP获取汉字首字母函数


    首字母很重要,可以进行排序使用。
    城市列表等等。

    <?php
    function getFirstCharter($str)
    {
        if (empty($str)) {
            return '';
        }
        
        $fchar = ord($str{0});
        
        if ($fchar >= ord('A') && $fchar <= ord('z'))
            return strtoupper($str{0});
        
        $s1 = iconv('UTF-8', 'gb2312', $str);
        
        $s2 = iconv('gb2312', 'UTF-8', $s1);
        
        $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 null;
        
    }
    
    
    $firstChar = getFirstCharter('你好');
    print_r($firstChar);
    
    output:N
    ?>
    
  • 相关阅读:
    AMBA总线介绍
    placeholder不显示的解决办法(支持ie8以上)
    通过新浪微博API获取数据
    PHP时间运算
    PHP队列
    stream_context_create()
    http_build_query()
    shuffle()
    session_id()
    session_name()
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/5194653.html
Copyright © 2020-2023  润新知