使用场景:城市列表等根据首字母排序的场景

 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
结果是:J
 
其中:当$str是一个字符集合时,例如$str = 'afdsafdsf'  或者$str='脚本'  可以用两种方式取得字符:
$str[0]  等同于 $str{0}

PHP自定义函数获取汉字首字母的方法的更多相关文章

  1. JS获取汉字首字母

    //获取 汉字首字母 function makePy(str) { if (typeof (str) != "string") throw new Error(-1, " ...

  2. ASP.NET获取汉字首字母

    /// <summary> /// 获取汉字首字母(可包含多个汉字) /// </summary> /// <param name="strText" ...

  3. php获取汉字首字母

    php获取汉字首字母,可以用于按字母对数据进行检索排序等. 分享下网上找的代码.亲测有效. function getFirstCharter($str){ if(empty($str)){return ...

  4. JS实现获取汉字首字母拼音、全拼音及混拼音的方法

    本文实例讲述了JS实现获取汉字首字母拼音.全拼音及混拼音的方法.分享给大家供大家参考,具体如下: 这里需要用到一个js获取汉字拼音的插件,可点击此处本站下载. 运行效果如下: 完整示例代码: ? 1 ...

  5. .NET获取汉字首字母

    /// <summary> /// 获取汉字首字母(可包含多个汉字) /// </summary> /// <param name="strText" ...

  6. python获取汉字首字母

    获取汉字首字母 关注公众号"轻松学编程"了解更多. 应用场景之一:可用于获取名字首字母,在数据库中查询记录时,可以用它来排序输出. from pytz import unicode ...

  7. php获取汉字首字母的函数

    本文介绍用php实现汉字转化为首字母的方法,主要功能是:功能明确,易于修改维护和扩展: 英文的字串:不变返回(包括数字):中文字符串:返回拼音首字符: 中英混合串: 返回拼音首字符和英文. 网上的方法 ...

  8. c#获取汉字首字母拼音

    /* * 由SharpDevelop创建. * 用户: lenovo * 日期: 2013/10/22 * 时间: 20:15 * * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件 */ ...

  9. php获取汉字首字母实例

    在我们实际开发工作中,有时候需要获取输入汉字的首字母,然后存到库中,方便用户搜索相关信息,下面给出php代码,留做备用: //新添加获取汉子首字,首字字母 function pinyin($zh){ ...

随机推荐

  1. jsp:<c:redirect> 和<c:param> 标签

    redirect 标签使用来进行页面之间的重定向,它和传统 JSP 程序中的<jsp:redirect>标记功能相类似.param 标签是和 redirect 一起使用的,它用来进行参数值 ...

  2. java:jsp: 一个简单的自定义标签 tld

    java:jsp: 一个简单的自定义标签 tld 请注意,uri都是:http://www.tag.com/mytag,保持统一,要不然报错,不能访问 tld文件 <?xml version=& ...

  3. 常用的CDN 链接 http://cdn.code.baidu.com/ http://www.bootcdn.cn/

    http://cdn.code.baidu.com/ http://developer.baidu.com/wiki/index.php?title=docs/cplat/libs ★新浪CDN,感觉 ...

  4. 1008 Envy(好题¥)

    1008: Envy 时间限制: 1 Sec  内存限制: 128 MB提交: 288  解决: 61[提交][状态][讨论版] 题目描述 今年的 ACM 比赛推出了一个赛后的娱乐活动,所有参赛选手排 ...

  5. MySQL 大数据量修改表结构问题

    前言: 在系统正常运作一定时间后,随着市场.产品汪的需求不断变更,比较大的一些表结构面临不得不增加字段的方式来扩充满足业务需求:  而 MySQL 在体量上了千万.亿级别数据的时候,Alter Tab ...

  6. Hadoop2.5.2+HA+zookeeper3.4.6详细配置过程

    心血之作,在熟悉hadoop2架构的过程耽误了太长时间,在搭建环境过程遇到一些问题,这些问题一直卡在那儿,不得以解决,耽误了时间.最后,千寻万寻,把问题解决,多谢在过程提供帮助的大侠.这篇文章中,我也 ...

  7. hdu1398 Square Coins(母函数)

    题目类似于整数拆分,很明显用母函数来做. 母函数的写法基本固定,根据具体每项乘式的不同做出一些修改就行了.它的思路是从第一个括号开始,一个括号一个括号的乘开,用c1数组保存之前已经乘开的系数,即c1[ ...

  8. uuid 学习

    #include <vector> #include <iostream> #include <boost/uuid/uuid.hpp> #include < ...

  9. CodeForces - 891C: Envy(可撤销的并查集&最小生成树)

    For a connected undirected weighted graph G, MST (minimum spanning tree) is a subgraph of G that con ...

  10. C# 读xml注释或过滤xml注释

    有这么个需求: 要统计所有的配置文件,这些配置文件都xml格式,并把这些配置写到数据表里,如果有注释要把这些注释写到对应配置对象的描述字段上 <item id="" key= ...