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
Dec 14 PHP
Smarty结合Ajax实现无刷新留言本实例
Jan 02 PHP
PHP cron中的批处理
Sep 16 PHP
深入Memcache的Session数据的多服务器共享详解
Jun 13 PHP
phpphp图片采集后按原路径保存图片示例
Feb 18 PHP
php实现删除指定目录下相关文件的方法
Oct 20 PHP
dedecms中使用php语句指南
Nov 13 PHP
64位windows系统下安装Memcache缓存
Dec 06 PHP
zend framework中使用memcache的方法
Mar 04 PHP
PHP错误机制知识汇总
Mar 24 PHP
php 的反射详解及示例代码
Aug 25 PHP
浅谈laravel数据库查询返回的数据形式
Oct 21 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 unset全局变量运用问题的深入解析
2013/06/17 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
JS获取地址栏参数的小例子
2013/08/23 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
2015/08/06 Javascript
浅谈js中的延迟执行和定时执行
2016/05/31 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
2016/11/07 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
vue生成token并保存到本地存储中
2018/07/17 Javascript
JavaScript中import用法总结
2019/01/20 Javascript
微信小程序与公众号卡券/会员打通的问题
2019/07/25 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
在vue-cli中引入lodash.js并使用详解
2019/11/13 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
[10:49]2014国际邀请赛 叨叨刀塔第二期为真正的电竞喝彩
2014/07/21 DOTA
30秒轻松实现TensorFlow物体检测
2018/03/14 Python
ubuntu系统下使用pm2设置nodejs开机自启动的方法
2018/05/12 NodeJs
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
python 字典中取值的两种方法小结
2018/08/02 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
python内打印变量之%和f的实例
2020/02/19 Python
最小二乘法及其python实现详解
2020/02/24 Python
Python3创建Django项目的几种方法(3种)
2020/06/03 Python
Python csv文件记录流程代码解析
2020/07/16 Python
pytorch中index_select()的用法详解
2021/01/06 Python
浅析CSS3 中的 transition,transform,translate之间区别和作用
2020/03/26 HTML / CSS
巾帼文明岗汇报材料
2014/12/24 职场文书
向女朋友道歉的话
2015/01/20 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书
应届生个人的求职(自荐信范文2篇)
2019/08/23 职场文书
python实现自动化群控的步骤
2021/04/11 Python
Linux系统下MySQL配置主从分离的步骤
2022/03/21 MySQL
Python Matplotlib绘制动画的代码详解
2022/05/30 Python