php查询汉字的拼音首字母的函数
function getfirst($str, $charset='utf8'){
$dict=array(
'a'=>0xB0C4,
'b'=>0xB2C0,
'c'=>0xB4ED,
'd'=>0xB6E9,
'e'=>0xB7A1,
'f'=>0xB8C0,
'g'=>0xB9FD,
'h'=>0xBBF6,
'j'=>0xBFA5,
'k'=>0xC0AB,
'l'=>0xC2E7,
'm'=>0xC4C2,
'n'=>0xC5B5,
'o'=>0xC5BD,
'p'=>0xC6D9,
'q'=>0xC8BA,
'r'=>0xC8F5,
's'=>0xCBF9,
't'=>0xCDD9,
'w'=>0xCEF3,
'x'=>0xD188,
'y'=>0xD4D0,
'z'=>0xD7F9,
);
if ('utf8' == $charset){
$str = iconv("UTF-8", "gb2312", $str);
}
$str_1 = substr($str, 0, 1);
//取GB2312字符串首字母,原理是GBK汉字是按拼音顺序编码的.
if ($str_1>=chr(0x81) && $str_1<=chr(0xfe)){
$num = hexdec(bin2hex(substr($str, 0, 2)));
foreach ($dict as $k=>$v){
if($v>=$num){
break;
}
}
return $k;
}else {
return $str_1;
}
}
echo getfirst('中')."
";
echo getfirst('华')."
";
echo getfirst('人')."
";
echo getfirst('民')."
";
echo getfirst('共')."
";
echo getfirst('和')."
";
echo getfirst('国')."
";
echo getfirst('万岁')."
";
echo getfirst('c')."
";
echo getfirst('h')."
";
echo getfirst('i')."
";
echo getfirst('n')."
";
echo getfirst('a')."
";
最新文章
- 我的MYSQL学习心得(七) 查询
- android 程序代码执行adb
- CYQ.Data 轻量数据层之路 优雅V1.4 现世 附API帮助文档(九)
- python 安装pillow
- cocos2d-x之Vector与map
- jQuery--each遍历使用方法
- php7对redis的扩展及redis主从搭建
- Js判断一个单词是否有重复字母
- HDU 2509
- SQL Server游标+延迟执行简介
- ASP.NET Excel数据导出数据库
- swift Dictionary 字典
- vim ---- 自己主动的按钮indent该命令
- 将android界面背景设置为黑色
- panel的autoscroll属性不起作用
- 201521123091 《Java程序设计》第8周学习总结
- 软考下午题详解---uml图
- Mac 软件专题:高效率工作和学习工具软件推荐
- IPv6技术详解:基本概念、应用现状、技术实践(下篇)
- spring mvc 接受前台json @RequestBody json 属性 空 使用 JsonProperty spring mvc 获取json转乘bean
热门文章
- lintcode:交错正负数
- 创建新进程,就三个函数CreateProcessAsUser CreateProcessWithLogonW CreateProcessWithTokenW(附网友的流程)
- 对所有CPU寄存器的简述(16位CPU14个,32位CPU16个)
- 读取redis中的数据时出现:MISCONF Redis is configured to save RDB snapshots
- 统计MySQL数据表大小
- marquee 笔记
- 笔记二、本地git命令
- IntelliJ IDEA12.1.1 使用 相关记录
- [原]HDU-1598-find the most comfortable road(暴力枚举+Kruskal最小生成树)
- NDK(8)";Unknown Application ABI";的解决方案