用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 相关文章推荐
最简单的PHP程序--记数器
Oct 09 PHP
PHP面向对象编程快速入门
Dec 14 PHP
剖析 PHP 中的输出缓冲
Dec 21 PHP
php echo()和print()、require()和include()函数区别说明
Mar 27 PHP
PHP中冒号、endif、endwhile、endfor使用介绍
Apr 28 PHP
php使用GD创建保持宽高比缩略图的方法
Apr 17 PHP
php数组生成html下拉列表的方法
Jul 20 PHP
PHP7.0版本备注
Jul 23 PHP
详解PHP防止直接访问.php 文件的实现方法
Jul 28 PHP
PHP+AJAX 投票器功能
Nov 11 PHP
PHP中16个高危函数整理
Sep 19 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
Oct 12 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
全国FM电台频率大全 - 20 广西省
2020/03/11 无线电
十天学会php之第一天
2006/10/09 PHP
PHP批量生成缩略图的代码
2008/07/19 PHP
php 获取select下拉列表框的值
2010/05/08 PHP
详解js异步文件加载器
2016/01/24 PHP
(function(){})()的用法与优点
2007/03/11 Javascript
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
JSP中使用JavaScript动态插入删除输入框实现代码
2014/06/13 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
解析如何利用iframe标签以及js制作时钟
2016/12/08 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
JavaScript实现的选择排序算法实例分析
2017/04/14 Javascript
vue 虚拟dom的patch源码分析
2018/03/01 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
原理深度解析Vue的响应式更新比React快
2020/04/04 Javascript
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
2020/07/27 Javascript
python 不关闭控制台的实现方法
2011/10/23 Python
Python实战小程序利用matplotlib模块画图代码分享
2017/12/09 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
django+mysql的使用示例
2018/11/23 Python
深入解析Python小白学习【操作列表】
2019/03/23 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
Tory Burch美国官方网站:美国时尚生活品牌
2016/08/01 全球购物
技术学校毕业生求职信分享
2013/12/02 职场文书
工厂车间标语
2014/06/19 职场文书
励志演讲稿800字
2014/08/21 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
Python自动化爬取天眼查数据的实现
2021/06/15 Python
Docker下安装Oracle19c
2022/04/13 Servers
蓝牙耳机怎么连接电脑win11? Win11蓝牙耳机连接电脑的技巧
2023/01/09 数码科技