php 获得汉字拼音首字母的函数


Posted in PHP onAugust 01, 2009

php获取汉字拼音的第一个字母

<?php 
function getinitial($str) 
{ 
$asc=ord(substr($str,0,1)); 
if ($asc<160) //非中文 
{ 
if ($asc>=48 && $asc<=57){ 
return '1'; //数字 
}elseif ($asc>=65 && $asc<=90){ 
return chr($asc); // A--Z 
}elseif ($asc>=97 && $asc<=122){ 
return chr($asc-32); // a--z 
}else{ 
return '~'; //其他 
} 
} 
else //中文 
{ 
$asc=$asc*1000+ord(substr($str,1,1)); 
//获取拼音首字母A--Z 
if ($asc>=176161 && $asc<176197){ 
return 'A'; 
}elseif ($asc>=176197 && $asc<178193){ 
return 'B'; 
}elseif ($asc>=178193 && $asc<180238){ 
return 'C'; 
}elseif ($asc>=180238 && $asc<182234){ 
return 'D'; 
}elseif ($asc>=182234 && $asc<183162){ 
return 'E'; 
}elseif ($asc>=183162 && $asc<184193){ 
return 'F'; 
}elseif ($asc>=184193 && $asc<185254){ 
return 'G'; 
}elseif ($asc>=185254 && $asc<187247){ 
return 'H'; 
}elseif ($asc>=187247 && $asc<191166){ 
return 'J'; 
}elseif ($asc>=191166 && $asc<192172){ 
return 'K'; 
}elseif ($asc>=192172 && $asc<194232){ 
return 'L'; 
}elseif ($asc>=194232 && $asc<196195){ 
return 'M'; 
}elseif ($asc>=196195 && $asc<197182){ 
return 'N'; 
}elseif ($asc>=197182 && $asc<197190){ 
return 'O'; 
}elseif ($asc>=197190 && $asc<198218){ 
return 'P'; 
}elseif ($asc>=198218 && $asc<200187){ 
return 'Q'; 
}elseif ($asc>=200187 && $asc<200246){ 
return 'R'; 
}elseif ($asc>=200246 && $asc<203250){ 
return 'S'; 
}elseif ($asc>=203250 && $asc<205218){ 
return 'T'; 
}elseif ($asc>=205218 && $asc<206244){ 
return 'W'; 
}elseif ($asc>=206244 && $asc<209185){ 
return 'X'; 
}elseif ($asc>=209185 && $asc<212209){ 
return 'Y'; 
}elseif ($asc>=212209){ 
return 'Z'; 
}else{ 
return '~'; 
} 
} 
} 
echo getinitial("脚本"); 
?>
function getfirstchar($s0){ 
$firstchar_ord=ord(strtoupper($s0{0})); 
if (($firstchar_ord>=65 and $firstchar_ord<=91)or($firstchar_ord>=48 and $firstchar_ord<=57)) return $s0{0}; 
$s=iconv("UTF-8","gb2312", $s0); 
$asc=ord($s{0})*256+ord($s{1})-65536; 
if($asc>=-20319 and $asc<=-20284)return "A"; 
if($asc>=-20283 and $asc<=-19776)return "B"; 
if($asc>=-19775 and $asc<=-19219)return "C"; 
if($asc>=-19218 and $asc<=-18711)return "D"; 
if($asc>=-18710 and $asc<=-18527)return "E"; 
if($asc>=-18526 and $asc<=-18240)return "F"; 
if($asc>=-18239 and $asc<=-17923)return "G"; 
if($asc>=-17922 and $asc<=-17418)return "H"; 
if($asc>=-17417 and $asc<=-16475)return "J"; 
if($asc>=-16474 and $asc<=-16213)return "K"; 
if($asc>=-16212 and $asc<=-15641)return "L"; 
if($asc>=-15640 and $asc<=-15166)return "M"; 
if($asc>=-15165 and $asc<=-14923)return "N"; 
if($asc>=-14922 and $asc<=-14915)return "O"; 
if($asc>=-14914 and $asc<=-14631)return "P"; 
if($asc>=-14630 and $asc<=-14150)return "Q"; 
if($asc>=-14149 and $asc<=-14091)return "R"; 
if($asc>=-14090 and $asc<=-13319)return "S"; 
if($asc>=-13318 and $asc<=-12839)return "T"; 
if($asc>=-12838 and $asc<=-12557)return "W"; 
if($asc>=-12556 and $asc<=-11848)return "X"; 
if($asc>=-11847 and $asc<=-11056)return "Y"; 
if($asc>=-11055 and $asc<=-10247)return "Z"; 
return null; 
} 
echo getfirstchar("哈哈");
PHP 相关文章推荐
PHP的ASP防火墙
Oct 09 PHP
PHP4.04简明安装
Oct 09 PHP
PHP 进程锁定问题分析研究
Nov 24 PHP
PHP 自定义错误处理函数的使用详解
May 10 PHP
基于flush()不能按顺序输出时的解决办法
Jun 29 PHP
php根据日期判断星座的函数分享
Feb 13 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
May 08 PHP
关于URL最大长度限制的相关资料查证
Dec 23 PHP
PHP获取远程图片并保存到本地的方法
May 12 PHP
PHP递归遍历指定文件夹内的文件实现方法
Nov 15 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
Dec 15 PHP
ThinkPHP中调用PHPExcel的实现代码
Apr 08 PHP
PHP 上传文件的方法(类)
Jul 30 #PHP
PHP 文章中的远程图片采集到本地的代码
Jul 30 #PHP
PHP 中文乱码解决办法总结分析
Jul 30 #PHP
PHP 变量定义和变量替换的方法
Jul 30 #PHP
PHP file_get_contents 函数超时的几种解决方法
Jul 30 #PHP
一个PHP数组应该有多大的分析
Jul 30 #PHP
PHP UTF8编码内的繁简转换类
Jul 20 #PHP
You might like
PHP的构造方法,析构方法和this关键字详细介绍
2013/10/22 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
thinkphp命名空间用法实例详解
2015/12/30 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
彪哥1.1(智能表格)提供下载
2006/09/07 Javascript
用 javascript 实现的点击复制代码
2007/03/24 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
js style动态设置table高度
2014/10/21 Javascript
js获取字符串字节数方法小结
2015/06/09 Javascript
详解JavaScript基于面向对象之创建对象(1)
2015/12/10 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
JS去除重复并统计数量的实现方法
2016/12/15 Javascript
3分钟掌握常用的JS操作JSON方法总结
2017/04/25 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
2018/01/04 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
vue组件tabbar使用方法详解
2018/11/06 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
2018/11/28 Javascript
jquery实现掷骰子小游戏
2019/10/24 jQuery
vue 中 elment-ui table合并上下两行相同数据单元格
2019/12/26 Javascript
Python中操作MySQL入门实例
2015/02/08 Python
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
2015/03/06 Python
Python多线程编程(五):死锁的形成
2015/04/05 Python
Python贪心算法实例小结
2018/04/22 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
python实现随机加减法生成器
2020/02/24 Python
法国足球商店:Footcenter
2019/07/06 全球购物
房地产销售大学生自我评价分享
2013/11/11 职场文书
工业学校毕业生自荐书
2014/01/03 职场文书
优秀村官事迹材料
2014/01/10 职场文书
单位实习鉴定评语
2015/01/04 职场文书
旗帜观后感
2015/06/08 职场文书
工作违纪的检讨书范文
2019/07/09 职场文书
你知道哪几种MYSQL的连接查询
2021/06/03 MySQL