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 相关文章推荐
文章推荐系统(三)
Oct 09 PHP
PHP 转义使用详解
Jul 15 PHP
ThinkPHP3.1新特性之命名范围的使用
Jun 19 PHP
php中ftp_chdir与ftp_cdup函数用法
Nov 18 PHP
在PHP中使用FastCGI解析漏洞及修复方案
Nov 10 PHP
利用PHP命令行模式采集股票趋势信息
Aug 09 PHP
PHP实现上传图片到 zimg 服务器
Oct 19 PHP
关于PHP中协程和阻塞的一些理解与思考
Aug 11 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
Sep 07 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
Nov 30 PHP
PHP大文件分块上传功能实例详解
Jul 22 PHP
laravel 解决强制跳转 https的问题
Oct 22 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
漂亮但不安全的CTB
2006/10/09 PHP
php计算十二星座的函数代码
2012/08/21 PHP
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
php验证码实现代码(3种)
2015/09/07 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
PHP设计模式之简单工厂和工厂模式实例分析
2019/03/25 PHP
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
JS根据生日月份和日期计算星座的简单实现方法
2016/11/24 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
关于Vue Webpack2单元测试示例详解
2017/08/14 Javascript
Angular2里获取(input file)上传文件的内容的方法
2017/09/05 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
javascript填充默认头像方法
2018/02/22 Javascript
Vue中的methods、watch、computed的区别
2018/11/26 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
webpack 代码分离优化快速指北
2019/05/18 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
Vue实现多标签选择器
2019/11/28 Javascript
Python文件夹与文件的操作实现代码
2014/07/13 Python
python的tkinter布局之简单的聊天窗口实现方法
2014/09/03 Python
Python简单计算文件夹大小的方法
2015/07/14 Python
Python内置函数reversed()用法分析
2018/03/20 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
2019/08/12 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
python通过cython加密代码
2020/12/11 Python
CSS3绘制有活力的链接下划线
2016/07/14 HTML / CSS
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
荷叶圆圆教学反思
2014/02/01 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
成本会计实训报告
2014/11/05 职场文书
2019年汽车租赁合同范本!
2019/08/12 职场文书
导游词之烟台威海蓬莱
2019/11/14 职场文书
MySQL中的 inner join 和 left join的区别解析(小结果集驱动大结果集)
2023/05/08 MySQL