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 miniBB中文乱码问题解决方法
Nov 25 PHP
建站常用13种PHP开源CMS比较
Aug 23 PHP
php中关于普通表单多文件上传的处理方法
Mar 25 PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
Sep 07 PHP
Smarty foreach控制循环次数的实现详解
Jul 03 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
Apr 30 PHP
ThinkPHP3.1新特性之内容解析输出详解
Jun 19 PHP
php模拟用户自动在qq空间发表文章的方法
Jan 07 PHP
php商品对比功能代码分享
Sep 24 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
Mar 21 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
Mar 15 PHP
PHP简单实现记录网站访问量功能示例
Jun 06 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 抽象类的简单应用
2011/09/06 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
PHP递归删除多维数组中的某个值
2017/04/17 PHP
PDO::_construct讲解
2019/01/27 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
js/jquery判断浏览器的方法小结
2014/09/02 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
2018/08/27 Javascript
Vuex中的State使用介绍
2019/01/19 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
2020/02/12 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
2020/10/12 Javascript
Vue实现随机验证码功能
2020/12/29 Vue.js
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
python计算牛顿迭代多项式实例分析
2015/05/07 Python
Python中在脚本中引用其他文件函数的实现方法
2016/06/23 Python
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
wxPython实现画图板
2020/08/27 Python
html5的canvas方法使用指南
2014/12/15 HTML / CSS
网络艺术零售业的先驱者:artrepublic
2017/09/26 全球购物
Smallable意大利家庭概念店:设计师童装及家居装饰
2018/01/08 全球购物
美国渔具店:FishUSA
2019/08/07 全球购物
什么是makefile? 如何编写makefile?
2012/08/08 面试题
毕业生优秀推荐信
2013/11/26 职场文书
缓刑人员的思想汇报
2014/01/11 职场文书
cf收人广告词大全
2014/03/14 职场文书
幼儿园大班开学教师寄语
2014/04/03 职场文书
婚假请假条怎么写
2014/04/10 职场文书
在教室放鞭炮的检讨书
2014/09/28 职场文书
公司奖励通知
2015/04/21 职场文书
go语言基础 seek光标位置os包的使用
2021/05/09 Golang
Java生成读取条形码和二维码的简单示例
2021/07/09 Java/Android
Python 数据可视化工具 Pyecharts 安装及应用
2022/04/20 Python