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 相关文章推荐
基于mysql的论坛(3)
Oct 09 PHP
PHP nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
Aug 21 PHP
ThinkPHP自动验证失败的解决方法
Jun 09 PHP
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
Dec 10 PHP
php实现可用于mysql,mssql,pg数据库操作类
Dec 13 PHP
php保存任意网络图片到服务器的方法
Apr 14 PHP
php截取指定2个字符之间字符串的方法
Apr 15 PHP
分析PHP中单双引号的误区和双引号小隐患
Jul 19 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
May 14 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
javascript Keycode对照表
2009/10/24 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
window.location.href IE下跳转失效的解决方法
2014/03/27 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
JavaScript定义类和对象的方法
2014/11/26 Javascript
jquery中one()方法的用法实例
2015/01/16 Javascript
js实现微信分享代码
2020/10/11 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
javascript宿主对象之window.navigator详解
2016/09/07 Javascript
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
ES6 迭代器(Iterator)和 for.of循环使用方法学习(总结)
2018/02/08 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
通过JS运行机制的角度说说作用域
2019/03/12 Javascript
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
Python下的Softmax回归函数的实现方法(推荐)
2017/01/26 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
2019/07/15 Python
基于python实现从尾到头打印链表
2019/11/02 Python
python-jwt用户认证食用教学的实现方法
2021/01/19 Python
html5+css3之制作header实例与更新
2020/12/21 HTML / CSS
英国领先的瓷砖专家:Walls and Floors
2018/04/27 全球购物
Java提供了哪些企业应用编程接口
2015/02/13 面试题
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
领导证婚人证婚词
2014/01/13 职场文书
《纸船和风筝》教学反思
2014/02/15 职场文书
初三班主任寄语大全
2014/04/04 职场文书
学校安全责任书
2014/04/14 职场文书
学雷锋月活动总结
2014/04/25 职场文书
会计简历自我评价
2015/03/10 职场文书
公诉意见书范文
2015/06/05 职场文书
孟佩杰观后感
2015/06/17 职场文书
升学宴学生致辞
2015/07/27 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
Django使用echarts进行可视化展示的实践
2021/06/10 Python
漫改真人电影「萌系男友是燃燃的橘色」公开先导视觉图
2022/03/21 日漫