PHP常用函数之获取汉字首字母功能示例


Posted in PHP onOctober 21, 2019

本文实例讲述了PHP常用函数之获取汉字首字母功能。分享给大家供大家参考,具体如下:

//获取汉字的首字母
function getFirstCharters($str)
{
  if (empty($str)) {
    return '';
  }
  //取出参数字符串中的首个字符
  $temp_str = substr($str,0,1);
  if(ord($temp_str) > 127){
    $str = substr($str,0,3);
  }else{
    $str = $temp_str;
    $fchar = ord($str{0});
    if ($fchar >= ord('A') && $fchar <= ord('z')){
      return strtoupper($temp_str);
    }else{
      return null;
    }
  }
  $s1 = iconv('UTF-8', 'gb2312//IGNORE', $str);
  if(empty($s1)){
    return null;
  }
  $s2 = iconv('gb2312', 'UTF-8', $s1);
  if(empty($s2)){
    return null;
  }
  $s = $s2 == $str ? $s1 : $str;
  $asc = ord($s{0}) * 256 + ord($s{1}) - 65536;
  if ($asc >= -20319 && $asc <= -20284)
    return 'A';
  if ($asc >= -20283 && $asc <= -19776)
    return 'B';
  if ($asc >= -19775 && $asc <= -19219)
    return 'C';
  if ($asc >= -19218 && $asc <= -18711)
    return 'D';
  if ($asc >= -18710 && $asc <= -18527)
    return 'E';
  if ($asc >= -18526 && $asc <= -18240)
    return 'F';
  if ($asc >= -18239 && $asc <= -17923)
    return 'G';
  if ($asc >= -17922 && $asc <= -17418)
    return 'H';
  if ($asc >= -17417 && $asc <= -16475)
    return 'J';
  if ($asc >= -16474 && $asc <= -16213)
    return 'K';
  if ($asc >= -16212 && $asc <= -15641)
    return 'L';
  if ($asc >= -15640 && $asc <= -15166)
    return 'M';
  if ($asc >= -15165 && $asc <= -14923)
    return 'N';
  if ($asc >= -14922 && $asc <= -14915)
    return 'O';
  if ($asc >= -14914 && $asc <= -14631)
    return 'P';
  if ($asc >= -14630 && $asc <= -14150)
    return 'Q';
  if ($asc >= -14149 && $asc <= -14091)
    return 'R';
  if ($asc >= -14090 && $asc <= -13319)
    return 'S';
  if ($asc >= -13318 && $asc <= -12839)
    return 'T';
  if ($asc >= -12838 && $asc <= -12557)
    return 'W';
  if ($asc >= -12556 && $asc <= -11848)
    return 'X';
  if ($asc >= -11847 && $asc <= -11056)
    return 'Y';
  if ($asc >= -11055 && $asc <= -10247)
    return 'Z';
  return rare_words($asc);
}
//百家姓中的生僻字
function rare_words($asc=''){
  $rare_arr = array(
    -3652=>array('word'=>"窦",'first_char'=>'D'),
    -8503=>array('word'=>"奚",'first_char'=>'X'),
    -9286=>array('word'=>"酆",'first_char'=>'F'),
    -7761=>array('word'=>"岑",'first_char'=>'C'),
    -5128=>array('word'=>"滕",'first_char'=>'T'),
    -9479=>array('word'=>"邬",'first_char'=>'W'),
    -5456=>array('word'=>"臧",'first_char'=>'Z'),
    -7223=>array('word'=>"闵",'first_char'=>'M'),
    -2877=>array('word'=>"裘",'first_char'=>'Q'),
    -6191=>array('word'=>"缪",'first_char'=>'M'),
    -5414=>array('word'=>"贲",'first_char'=>'B'),
    -4102=>array('word'=>"嵇",'first_char'=>'J'),
    -8969=>array('word'=>"荀",'first_char'=>'X'),
    -4938=>array('word'=>"於",'first_char'=>'Y'),
    -9017=>array('word'=>"芮",'first_char'=>'R'),
    -2848=>array('word'=>"羿",'first_char'=>'Y'),
    -9477=>array('word'=>"邴",'first_char'=>'B'),
    -9485=>array('word'=>"隗",'first_char'=>'K'),
    -6731=>array('word'=>"宓",'first_char'=>'M'),
    -9299=>array('word'=>"郗",'first_char'=>'X'),
    -5905=>array('word'=>"栾",'first_char'=>'L'),
    -4393=>array('word'=>"钭",'first_char'=>'T'),
    -9300=>array('word'=>"郜",'first_char'=>'G'),
    -8706=>array('word'=>"蔺",'first_char'=>'L'),
    -3613=>array('word'=>"胥",'first_char'=>'X'),
    -8777=>array('word'=>"莘",'first_char'=>'S'),
    -6708=>array('word'=>"逄",'first_char'=>'P'),
    -9302=>array('word'=>"郦",'first_char'=>'L'),
    -5965=>array('word'=>"璩",'first_char'=>'Q'),
    -6745=>array('word'=>"濮",'first_char'=>'P'),
    -4888=>array('word'=>"扈",'first_char'=>'H'),
    -9309=>array('word'=>"郏",'first_char'=>'J'),
    -5428=>array('word'=>"晏",'first_char'=>'Y'),
    -2849=>array('word'=>"暨",'first_char'=>'J'),
    -7206=>array('word'=>"阙",'first_char'=>'Q'),
    -4945=>array('word'=>"殳",'first_char'=>'S'),
    -9753=>array('word'=>"夔",'first_char'=>'K'),
    -10041=>array('word'=>"厍",'first_char'=>'S'),
    -5429=>array('word'=>"晁",'first_char'=>'C'),
    -2396=>array('word'=>"訾",'first_char'=>'Z'),
    -7205=>array('word'=>"阚",'first_char'=>'K'),
    -10049=>array('word'=>"乜",'first_char'=>'N'),
    -10015=>array('word'=>"蒯",'first_char'=>'K'),
    -3133=>array('word'=>"竺",'first_char'=>'Z'),
    -6698=>array('word'=>"逯",'first_char'=>'L'),
    -9799=>array('word'=>"俟",'first_char'=>'Q'),
    -6749=>array('word'=>"澹",'first_char'=>'T'),
    -7220=>array('word'=>"闾",'first_char'=>'L'),
    -10047=>array('word'=>"亓",'first_char'=>'Q'),
    -10005=>array('word'=>"仉",'first_char'=>'Z'),
    -3417=>array('word'=>"颛",'first_char'=>'Z'),
    -6431=>array('word'=>"驷",'first_char'=>'S'),
    -7226=>array('word'=>"闫",'first_char'=>'Y'),
    -9293=>array('word'=>"鄢",'first_char'=>'Y'),
    -6205=>array('word'=>"缑",'first_char'=>'G'),
    -9764=>array('word'=>"佘",'first_char'=>'S'),
    -9818=>array('word'=>"佴",'first_char'=>'N'),
    -9509=>array('word'=>"谯",'first_char'=>'Q'),
    -3122=>array('word'=>"笪",'first_char'=>'D'),
    -9823=>array('word'=>"佟",'first_char'=>'T'),
  );
  if(array_key_exists($asc, $rare_arr) && $rare_arr[$asc]['first_char']){
    return $rare_arr[$asc]['first_char'] ;
  }else{
    return null;
  }
}
//测试:
echo getFirstCharters('窦');

运行结果:

D

PHP 相关文章推荐
如何在PHP中使用Oracle数据库(5)
Oct 09 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
Jun 23 PHP
linux命令之调试工具strace的深入分析
Jun 03 PHP
ThinkPHP 表单自动验证运用示例
Oct 13 PHP
PHP制作万年历
Jan 07 PHP
php使用GD库创建图片缩略图的方法
Jun 10 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
Jul 08 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
Sep 23 PHP
PHP 闭包详解及实例代码
Sep 28 PHP
PHP基于SimpleXML生成和解析xml的方法示例
Jul 17 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
Jan 10 PHP
利用PHP计算有多少小于当前数字的数字方法示例
Aug 26 PHP
PHP常用函数之根据生日计算年龄功能示例
Oct 21 #PHP
PHP常用函数之格式化时间操作示例
Oct 21 #PHP
PHP常用函数之base64图片上传功能详解
Oct 21 #PHP
laravel5 Eloquent 实现事务方式
Oct 21 #PHP
基于Laravel 多个中间件的执行顺序详解
Oct 21 #PHP
laravel利用中间件做防非法登录和权限控制示例
Oct 21 #PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
Oct 21 #PHP
You might like
在线竞拍系统的PHP实现框架(二)
2006/10/09 PHP
PHP中::、-&amp;gt;、self、$this几种操作符的区别介绍
2013/04/24 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
PHP微信API接口类
2016/08/22 PHP
详解PHP归并排序的实现
2016/10/18 PHP
犀利的js 函数集合
2009/06/11 Javascript
文本框获得焦点和失去焦点的判断代码
2012/03/18 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
jquery中get和post的简单实例
2014/02/04 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
2014/05/08 Javascript
js计算德州扑克牌面值的方法
2015/03/04 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
JavaScript实现梯形乘法表的方法
2015/04/25 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
js父页面中使用子页面的方法
2016/01/09 Javascript
vue 使用自定义指令实现表单校验的方法
2018/08/28 Javascript
使用post方法实现json往返传输数据的方法
2019/03/30 Javascript
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
如何用python整理附件
2018/05/13 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
python支持多继承吗
2020/06/19 Python
Virtualenv 搭建 Py项目运行环境的教程详解
2020/06/22 Python
中邮全球便购:中国邮政速递物流
2017/03/04 全球购物
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
外贸采购员求职的自我评价
2013/11/26 职场文书
电信营业员自我评价分享
2014/01/17 职场文书
改进作风怎么办发言材料
2014/08/17 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
安全承诺书
2015/01/19 职场文书
立项申请报告范本
2015/05/15 职场文书
集结号观后感
2015/06/08 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis