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


Posted in PHP onApril 23, 2013

最近项目有个需求,在一个中英文(包括阿拉伯数字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<=-20284)return "A";
            if($asc>=-20283 and $asc<=-19776)return "B";
            if($asc>=-19775 and $asc<=-19219)return "C";
            if($asc>=-19218 and $asc<=-18711)return "D";
            if($asc>=-18710 and $asc<=-18527)return "E"; 
            if($asc>=-18526 and $asc<=-18240)return "F"; 
            if($asc>=-18239 and $asc<=-17923)return "G"; 
            if($asc>=-17922 and $asc<=-17418)return "I";              
            if($asc>=-17417 and $asc<=-16475)return "J";              
            if($asc>=-16474 and $asc<=-16213)return "K";              
            if($asc>=-16212 and $asc<=-15641)return "L";              
            if($asc>=-15640 and $asc<=-15166)return "M";              
            if($asc>=-15165 and $asc<=-14923)return "N";              
            if($asc>=-14922 and $asc<=-14915)return "O";              
            if($asc>=-14914 and $asc<=-14631)return "P";              
            if($asc>=-14630 and $asc<=-14150)return "Q";              
            if($asc>=-14149 and $asc<=-14091)return "R";              
            if($asc>=-14090 and $asc<=-13319)return "S";              
            if($asc>=-13318 and $asc<=-12839)return "T";              
            if($asc>=-12838 and $asc<=-12557)return "W";              
            if($asc>=-12556 and $asc<=-11848)return "X";              
            if($asc>=-11847 and $asc<=-11056)return "Y";              
            if($asc>=-11055 and $asc<=-10247)return "Z";  
        }else if(ord($s)>=48 and ord($s)<=57){ //数字开头
            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)<=90){ //大写英文开头
            return substr($s,0,1);
        }else if(ord($s)>=97 and ord($s)<=122){ //小写英文开头
            return strtoupper(substr($s,0,1));
        }
        else
        {
            return iconv_substr($s0,0,1,'utf-8');//中英混合的词语,不适合上面的各种情况,因此直接提取首个字符即可
        }    }

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

最终效果如图:

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

PHP 相关文章推荐
用phpmyadmin更改mysql5.0登录密码
Mar 25 PHP
thinkPHP的Html模板标签使用方法
Nov 13 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
Mar 24 PHP
怎样搭建PHP开发环境
Jul 28 PHP
PHP实现的迷你漂流瓶
Jul 29 PHP
PHP汉字转换拼音的函数代码
Dec 30 PHP
laravel5.4生成验证码的实例讲解
Aug 05 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
Sep 04 PHP
Yii框架操作cookie与session的方法实例详解
Sep 04 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 PHP
php获取是星期几的的一些常用姿势
Dec 15 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
Mar 09 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
Apr 23 #PHP
『PHP』PHP截断函数mb_substr()使用介绍
Apr 22 #PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
Apr 22 #PHP
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
Apr 22 #PHP
基于PHP Web开发MVC框架的Smarty使用说明
Apr 19 #PHP
PHP时间戳与日期之间转换的实例介绍
Apr 19 #PHP
php多文件上传功能实现原理及代码
Apr 18 #PHP
You might like
用文本作数据处理
2006/10/09 PHP
深入理解PHP中的Session和Cookie
2013/06/21 PHP
Laravel框架模型的创建及模型对数据操作示例
2019/05/07 PHP
PHP Redis扩展无法加载的问题解决方法
2019/08/22 PHP
JavaScript面象对象设计
2008/04/28 Javascript
jQuery之字体大小的设置方法
2014/02/27 Javascript
Jquery自定义button按钮的几种方法
2014/06/11 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
js HTML5多媒体影音播放
2016/10/17 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
JS设计模式之访问者模式定义与用法分析
2018/02/05 Javascript
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
Python os模块介绍
2014/11/30 Python
Python中使用dom模块生成XML文件示例
2015/04/05 Python
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
python numpy 显示图像阵列的实例
2018/07/02 Python
六行python代码的爱心曲线详解
2019/05/17 Python
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
python判断自身是否正在运行的方法
2019/08/08 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
python实现与redis交互操作详解
2020/04/21 Python
澳洲的服装老品牌:SABA
2018/02/06 全球购物
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
德国前卫设计师时装在线商店:Luxury Loft
2019/11/04 全球购物
实习教师个人的自我评价
2013/11/08 职场文书
学校后勤人员职责
2013/12/27 职场文书
外企求职信范文分享
2013/12/31 职场文书
办理退休介绍信
2014/01/09 职场文书
优秀毕业生事迹材料
2014/02/12 职场文书
美术教学感言
2014/02/22 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏