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 相关文章推荐
不用iconv库的gb2312与utf-8的互换函数
Oct 09 PHP
php date()日期时间函数详解
May 16 PHP
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
Jun 01 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
Apr 03 PHP
php+curl 发送图片处理代码分享
Jul 09 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
Apr 15 PHP
PHP实现统计在线人数功能示例
Oct 15 PHP
THinkPHP获取客户端IP与IP地址查询的方法
Nov 14 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
老生常谈PHP面向对象之注册表模式
May 26 PHP
PHP网页安全认证的实例详解
Sep 28 PHP
PHP基于SPL实现的迭代器模式示例
Apr 22 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
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
2013/01/25 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
javascript 回调函数详解
2014/11/11 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
ionic实现可滑动的tab选项卡切换效果
2020/04/15 Javascript
JS获取鼠标相对位置的方法
2016/09/20 Javascript
JavaScript SHA512加密算法详细代码
2016/10/06 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
2018/11/25 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
详解python eval函数的妙用
2017/11/16 Python
详解appium+python 启动一个app步骤
2017/12/20 Python
python 列表,数组和矩阵sum的用法及区别介绍
2018/06/28 Python
Sanic框架应用部署方法详解
2018/07/18 Python
Python+OpenCV实现图像融合的原理及代码
2018/12/03 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
Python sep参数使用方法详解
2020/02/12 Python
Python HTMLTestRunner可视化报告实现过程解析
2020/04/10 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
css3给背景图片加颜色遮罩的方法
2019/11/05 HTML / CSS
英国最大的化装舞会服装网站:Fancydress.com
2017/08/15 全球购物
小学生家长评语集锦
2014/01/30 职场文书
外贸采购员岗位职责
2014/03/08 职场文书
《红军不怕远征难》教学反思
2014/04/14 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
2014年实习班主任工作总结
2014/11/08 职场文书
工伤认定行政答辩状
2015/05/22 职场文书
2016小学教师读书心得体会
2016/01/13 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL