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 文件上传代码(限制jpg文件)
Jan 05 PHP
对象失去焦点时自己动提交数据的实现代码
Nov 06 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
Feb 24 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
Nov 05 PHP
thinkphp配置连接数据库技巧
Dec 02 PHP
php从完整文件路径中分离文件目录和文件名的方法
Mar 13 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
Oct 09 PHP
PHP定时执行任务的3种方法详解
Dec 21 PHP
PHP实现导出带样式的Excel
Aug 28 PHP
magento后台无法登录解决办法的两种方法
Dec 09 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
Jun 19 PHP
Yii框架连表查询操作示例
Sep 06 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
攻克CakePHP系列三 表单数据增删改
2008/10/22 PHP
php开发文档 会员收费1期
2012/08/14 PHP
php两种无限分类方法实例
2015/04/21 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
laravel-admin 中列表筛选方法
2019/10/03 PHP
使用jquery实现简单的ajax
2013/07/08 Javascript
讲解JavaScript中for...in语句的使用方法
2015/06/03 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
Angular路由ui-router配置详解
2018/08/01 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
vuex 中插件的编写案例解析
2019/06/10 Javascript
在layui中select更改后生效的方法
2019/09/05 Javascript
Js代码中的span拼接问题解决
2019/11/22 Javascript
jquery实现进度条状态展示
2020/03/26 jQuery
linecache模块加载和缓存文件内容详解
2018/01/11 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
python 删除指定时间间隔之前的文件实例
2018/04/24 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
Python如何通过Flask-Mail发送电子邮件
2020/01/29 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
2021/02/26 Python
美国女孩服装购物网站:Justice
2017/03/04 全球购物
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
MAC Cosmetics巴西官方网站:M·A·C彩妆
2019/04/18 全球购物
珍惜资源保护环境的建议书
2014/05/14 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
政府会议通知范文
2015/04/15 职场文书
负责培养人意见
2015/06/05 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
品德与社会教学反思
2016/02/24 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang