PHP自定义函数获取汉字首字母的方法


Posted in PHP onDecember 01, 2016

本文实例讲述了PHP自定义函数获取汉字首字母的方法。分享给大家供大家参考,具体如下:

首字母很重要,可以进行排序使用。

城市列表等等。

<?php
/*
* Created on 2016-12-1
*/
function getFirstCharter($str)
{
  if (empty($str)) {
    return '';
  }
  $fchar = ord($str{0});
  if ($fchar >= ord('A') && $fchar <= ord('z'))
    return strtoupper($str{0});
  $s1 = iconv('UTF-8', 'gb2312', $str);
  $s2 = iconv('gb2312', 'UTF-8', $s1);
  $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 null;
}
$firstChar = getFirstCharter('三水点靠木');
print_r($firstChar);//输出:J
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php正则表达匹配中文问题分析小结
Mar 25 PHP
深入php处理整数函数的详解
Jun 09 PHP
ThinkPHP3.1新特性之查询条件预处理简介
Jun 19 PHP
PHP中的命名空间相关概念浅析
Jan 22 PHP
php限制ip地址范围的方法
Mar 31 PHP
PHP安装memcached扩展笔记
May 28 PHP
简介PHP的Yii框架中缓存的一些高级用法
Mar 29 PHP
php基于curl重写file_get_contents函数实例
Nov 08 PHP
PHP  Yii清理缓存的实现方法
Nov 10 PHP
php安装dblib扩展,连接mssql的具体步骤
Mar 02 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
Mar 14 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
phpmailer绑定邮箱的实现方法
Dec 01 #PHP
thinkPHP实现多字段模糊匹配查询的方法
Dec 01 #PHP
thinkPHP商城公告功能开发问题分析
Dec 01 #PHP
thinkPHP订单数字提醒功能的实现方法
Dec 01 #PHP
PHP 芝麻信用接入的注意事项
Dec 01 #PHP
PHP中静态变量的使用方法实例分析
Dec 01 #PHP
php版阿里云OSS图片上传类详解
Dec 01 #PHP
You might like
用PHP和ACCESS写聊天室(八)
2006/10/09 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
2016/06/13 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
2018/10/31 PHP
浅谈PHP匿名函数和闭包
2019/03/08 PHP
Thinkphp整合阿里云OSS图片上传实例代码
2019/04/28 PHP
dojo随手记 gird组件引用
2011/02/24 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
jQuery中[attribute!=value]选择器用法实例
2014/12/31 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
2015/04/12 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
js漂浮广告实现代码
2015/08/15 Javascript
javascript中 try catch用法
2015/08/16 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
js实现九宫格的随机颜色跳转
2017/02/19 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
nodeJS微信分享
2017/12/20 NodeJs
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
解决vue v-for src 图片路径问题 404
2019/11/12 Javascript
node.js中事件触发器events的使用方法实例分析
2019/11/23 Javascript
在JavaScript中实现链式调用的实现
2019/12/24 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
2020/03/24 Javascript
python实现在pandas.DataFrame添加一行
2018/04/04 Python
Python操作SQLite数据库过程解析
2019/09/02 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
css3+伪元素实现鼠标移入时下划线向两边展开的效果
2017/04/25 HTML / CSS
介绍一下Make? 为什么使用make
2013/12/08 面试题
绿化先进工作者事迹材料
2014/01/30 职场文书
作文评语大全
2014/04/23 职场文书
2014年电信员工工作总结
2014/12/19 职场文书
巾帼文明岗汇报材料
2014/12/24 职场文书
spring cloud gateway中如何读取请求参数
2021/07/15 Java/Android