zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    01-HTML控件
    08-多线程
    07-Log日志
    06-File-文件
    05-函数式编程
    04-异常使用处理
    03-常用包模块
    02-包
    Java NIO(六) Selector
    Java NIO(四) Scatter/Gather
  • 原文地址:https://www.cnblogs.com/520fyl/p/5481118.html
Copyright © 2011-2022 走看看