Home  >  Article  >  php教程  >  用PHP提取中英文词语以及数字的首字母的方法介绍

用PHP提取中英文词语以及数字的首字母的方法介绍

WBOY
WBOYOriginal
2016-06-13 11:53:57947browse

最近项目有个需求,在一个中英文(包括阿拉伯数字0-9)的海量词库中,提取每一个词语的首字母:

gannicus——>G

自由自在——>Z

2B——>E

傻X——>S

复制代码 代码如下:


private function getfirstchar($s0){
        $s=iconv('UTF-8','gb2312', $s0);
        if (ord($s0)>128) { //汉字开头
            $asc=ord($s{0})*256+ord($s{1})-65536;
            if($asc>=-20319 and $asc            if($asc>=-20283 and $asc            if($asc>=-19775 and $asc            if($asc>=-19218 and $asc            if($asc>=-18710 and $asc            if($asc>=-18526 and $asc            if($asc>=-18239 and $asc            if($asc>=-17922 and $asc            if($asc>=-17417 and $asc            if($asc>=-16474 and $asc            if($asc>=-16212 and $asc            if($asc>=-15640 and $asc            if($asc>=-15165 and $asc            if($asc>=-14922 and $asc            if($asc>=-14914 and $asc            if($asc>=-14630 and $asc            if($asc>=-14149 and $asc            if($asc>=-14090 and $asc            if($asc>=-13318 and $asc            if($asc>=-12838 and $asc            if($asc>=-12556 and $asc            if($asc>=-11847 and $asc            if($asc>=-11055 and $asc        }else if(ord($s)>=48 and ord($s)            switch(iconv_substr($s,0,1,'utf-8'))
            {
                case 1:return "Y";
                case 2:return "E";
                case 3:return "S";
                case 4:return "S";
                case 5:return "W";
                case 6:return "L";
                case 7:return "Q";
                case 8:return "B";
                case 9:return "J";
                case 0:return "L";
            }               
        }else if(ord($s)>=65 and ord($s)            return substr($s,0,1);
        }else if(ord($s)>=97 and ord($s)            return strtoupper(substr($s,0,1));
        }
        else
        {
            return iconv_substr($s0,0,1,'utf-8');//中英混合的词语,不适合上面的各种情况,因此直接提取首个字符即可
        }

    }


遗留问题:仍有少量词语无法提取,如亘古不灭,的G 没有提取出来

最终效果如图:

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn