Heim >Backend-Entwicklung >PHP-Tutorial >用PHP提取中英文词语以及数字的首字母的方法介绍_PHP

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

WBOY
WBOYOriginal
2016-06-01 12:08:101031Durchsuche

最近项目有个需求,在一个中英文(包括阿拉伯数字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 没有提取出来

最终效果如图:

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn