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批量生成随机用户名
Jul 10 PHP
php中判断数组是一维,二维,还是多维的解决方法
May 04 PHP
php字符串截取的简单方法
Jul 04 PHP
php中header设置常见文件类型的content-type
Jun 23 PHP
php提交post数组参数实例分析
Dec 17 PHP
win平台安装配置Nginx+php+mysql 环境
Jan 12 PHP
PHP实现伪静态方法汇总
Jan 13 PHP
浅谈PHP中的
Apr 23 PHP
PHP 极验验证码实例讲解
Sep 29 PHP
php自定义截取中文字符串-utf8版
Feb 27 PHP
PHP后端银联支付及退款实例代码
Jun 23 PHP
php+croppic.js实现剪切上传图片功能
Aug 14 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运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
2015/04/21 PHP
PHP获取文件行数的方法
2015/06/10 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
对YUI扩展的Gird组件 Part-2
2007/03/10 Javascript
在IE6下发生Internet Explorer cannot open the Internet site错误
2010/06/21 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
javascript产生随机数方法汇总
2016/01/25 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
js判断一个字符串是以某个字符串开头的简单实例
2016/12/27 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
vue 图片裁剪上传组件的实现
2020/11/12 Javascript
vue 解决IOS10低版本白屏的问题
2020/11/17 Javascript
Python实现分割文件及合并文件的方法
2015/07/10 Python
Python+Pandas 获取数据库并加入DataFrame的实例
2018/07/25 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
手写一个python迭代器过程详解
2019/08/27 Python
基于python实现计算两组数据P值
2020/07/10 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
python 读取yaml文件的两种方法(在unittest中使用)
2020/12/01 Python
南威尔士家居商店:Leekes
2016/10/25 全球购物
美国健康和保健平台:healtop
2020/07/02 全球购物
介绍一下#error预处理
2015/09/25 面试题
史上最全面的Java面试题汇总!
2015/02/03 面试题
汽车销售求职自荐信
2013/10/01 职场文书
市政施工员自我鉴定
2014/01/15 职场文书
应用化学专业职业生涯规划书
2014/01/22 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
党员干部一句话承诺
2014/05/30 职场文书
临床医学专业求职信
2014/08/08 职场文书
高中校园广播稿
2014/10/21 职场文书
《成长的天空》读后感3篇
2019/12/06 职场文书
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技
VW、VH适配移动端的解决方案与常见问题
2023/05/21 HTML / CSS