PHP获取汉字是字母

PHP获取汉字首字母函数,该方法可用于排序、查询等。

主要功能是:功能明确,易于修改维护和扩展; 英文的字串:不变返回(包括数字);中文字符串:返回拼音首字符; 中英混合串: 返回拼音首字符和英文。

示例代码:GetFirstPy.php

<?php
function getFirstLetter($str = '') {
    include('./GBK.php');
    //返回值
    $res = '';

    if (!$str)
        return $res;

    $s1 = iconv("UTF-8", "gbk", $str);
    $s2 = iconv("gbk", "UTF-8", $s1);
    if ($s2 == $str) {
        $str = $s1;
    }
    for ($i = 0; $i < strlen($str); $i++) {
        //获取俩个字节组成字符
        $ch = substr($str, $i, 2);
        //字符首字节的ASCII码
        $ch1_code = ord($ch{0});
        //汉字占俩个字节,坐标+1
        $i++;
        if ($ch1_code <= 254 && $ch1_code >= 170) {
            $ch2_code = ord($ch{1});  
            //优先处理GB-2312汉字.  
            if ($ch2_code > 160) { 
                //查找GB-2312  
                $no = ($ch1_code - 176) * 94 + ($ch2_code - 160);  
                $res .= $GB_2312[$no - 1];  
            } else { 
                //查找GBK_4  
                $no = ($ch1_code - 170) * 97 + ($ch2_code - 63); 
                
                $res .= $GBK_4[$no - 1];  
            }  
        }else if ($ch1_code <= 160 && $ch1_code >= 129) {
            $ch2_code = ord($ch{1});
            //查找GBK_3  
            $no = ($ch1_code - 129) * 191 + ($ch2_code - 63);
            echo " ".$no;
            echo  $GBK_3[$no - 4].$GBK_3[$no - 3].$GBK_3[$no - 2]."-".$GBK_3[$no - 1]."-".$GBK_3[$no].$GBK_3[$no + 1].$GBK_3[$no + 2];    
            $res .= $GBK_3[$no - 1]; 
            
        } else if($ch1_code <= 169 && $ch1_code >= 161) {  
            //GBK汉字特殊字符  
            $res .= $ch;
        } else {
            //不是GBK汉字  
            $res .= $ch{0};
            $i--;  
        }  

    }
    return $res;
}

$a = getFirstLetter(" 関関関関");
//
$a = iconv('gbk', 'utf-8', $a);
echo $a;
原文地址:https://www.cnblogs.com/520fyl/p/5481118.html