用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 pack与unpack 摸板字符字符含义
Oct 29 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 PHP
linux中cd命令使用详解
Jan 08 PHP
php快速查找数据库中恶意代码的方法
Apr 01 PHP
php实现中文字符截取防乱码方法汇总
Apr 29 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
Jan 20 PHP
php计算给定日期所在周的开始日期和结束日期示例
Feb 06 PHP
Laravel下生成验证码的类
Nov 15 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
Jan 04 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 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
IIS环境下快速安装、配置和调试PHP5.2.0
2006/12/17 PHP
php结合表单实现一些简单功能的例子
2011/06/04 PHP
PHP jQuery表单,带验证具体实现方法
2014/02/15 PHP
PHP错误和异长常处理总结
2014/03/06 PHP
php动态函数调用方法
2015/05/21 PHP
新手入门常用代码集锦
2007/01/11 Javascript
建立良好体验度的Web注册系统ajax
2007/07/09 Javascript
五段实用的js高级技巧
2011/12/20 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
jquery性能优化高级技巧
2015/08/24 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
2016/03/14 Javascript
浅谈struts1 &amp; jquery form 文件异步上传
2017/05/25 jQuery
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
将 vue 生成的 js 上传到七牛的实例
2017/07/28 Javascript
javascript算法之二叉搜索树的示例代码
2017/09/12 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
Python使用urllib2获取网络资源实例讲解
2013/12/02 Python
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
简单解决Python文件中文编码问题
2015/11/22 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
Python 实现训练集、测试集随机划分
2020/01/08 Python
PyTorch使用cpu加载模型运算方式
2020/01/13 Python
Python GUI库PyQt5图形和特效样式QSS介绍
2020/02/25 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
澳大利亚首屈一指的鞋类品牌:Tony Bianco
2018/03/13 全球购物
Python如何实现单例模式
2016/06/03 面试题
销售代表求职自荐信
2013/10/01 职场文书
美术毕业生求职信
2014/02/25 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP
MySQL约束超详解
2021/09/04 MySQL
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle
《黑岩★★射手 DAWN FALL》BD发售宣传CM公开
2022/04/04 日漫
如何设置多台电脑共享打印机?多台电脑共享打印机的方法
2022/04/08 数码科技