PHP获取汉字首字母函数

简介:

首字母很重要,可以进行排序使用。
城市列表等等。

<?php
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);

output:N
?>


相关文章
|
4月前
|
PHP 开发者
PHP计算过去一定时间段内日期范围函数
这个函数为开发者提供了一个快速而简单的方法来获取与当前日期相关的过去时间范围,代码简洁易懂,可复用性高。
156 15
|
6月前
|
PHP 开发者 索引
探究PHP中常见数组操作函数
在编码实践中,合理利用这些数组操作函数可以简化编程工作,提升代码的效率和可读性。为达到最佳实践,开发者应该通过阅读官方文档来深入理解每个函数的工作原理以及如何在不同的场景下运用它们。
258 8
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
本文介绍了解决PHP常见问题的步骤,包括定位和创建`php.ini`文件,以及解决`mb_strlen()`函数未定义和DLL模块加载错误的具体方法。
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
|
关系型数据库 MySQL 数据库连接
PHP内置函数
PHP内置函数
154 5
|
存储 API PHP
php学习笔记-php数组的创建和使用,数组常用函数-day03
关于PHP数组的创建、使用以及常用函数的详细学习笔记。
php学习笔记-php数组的创建和使用,数组常用函数-day03
|
Unix PHP 数据库
PHP日期和时间Date()函数获取当前时间
通过灵活运用 `date()`函数及其丰富的格式选项,PHP开发者可以轻松地在应用程序中处理和展示日期及时间信息。无论是需要精确到秒的完整时间戳,还是仅仅展示日期或时间的某一部分,`date()`函数都能胜任。理解并熟练应用这些格式化技巧,对于提升代码的可读性和维护性至关重要。
296 1
php学习笔记-php字符串及字符串常用函数总结-day04
本文总结了PHP中字符串的三种定义方式和常用字符串处理函数,包括字符串的修剪、转换、长度计算、子串操作、比较、连接、分割及替换等操作。
PHP:实现每个单词首字母大写
PHP:实现每个单词首字母大写
173 0
|
4月前
|
关系型数据库 MySQL PHP
PHP和Mysql前后端交互效果实现
本文介绍了使用PHP连接MySQL数据库的基本函数及其实现案例。内容涵盖数据库连接、选择数据库、执行查询、获取结果等常用操作,并通过用户登录和修改密码的功能实例,展示了PHP与MySQL的交互过程及代码实现。
359 0
PHP和Mysql前后端交互效果实现
|
9月前
|
关系型数据库 MySQL Linux
查看Linux、Apache、MySQL、PHP版本的技巧
以上就是查看Linux、Apache、MySQL、PHP版本信息的方法。希望这些信息能帮助你更好地理解和使用你的LAMP技术栈。
471 17