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 和 MySQL 基础教程(一)
Oct 09 PHP
不用数据库的多用户文件自由上传投票系统(1)
Oct 09 PHP
PHP 截取字符串函数整理(支持gb2312和utf-8)
Feb 16 PHP
PHP数组 为文章加关键字连接 文章内容自动加链接
Dec 29 PHP
深入解析PHP的引用计数机制
Jun 14 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
Oct 24 PHP
php使用NumberFormatter格式化货币的方法
Mar 21 PHP
PHP简单生成缩略图相册的方法
Jul 29 PHP
PHP实现微信网页授权开发教程
Jan 19 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
Apr 21 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
Apr 10 PHP
对laravel的session获取与存取方法详解
Oct 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仿tp实现mvc框架基本设计思路与实现方法分析
2018/05/23 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
2014/10/20 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
2016/09/05 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
Vue计算属性的使用
2017/08/04 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
实战node静态文件服务器的示例代码
2018/03/08 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
小程序实现抽奖动画
2020/04/16 Javascript
node 版本切换的实现
2020/02/02 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
Node.js API详解之 module模块用法实例分析
2020/05/13 Javascript
[01:13:17]Secret vs NB 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
Python 3.x 新特性及10大变化
2015/06/12 Python
Python使用wget实现下载网络文件功能示例
2018/05/31 Python
Tensorflow设置显存自适应,显存比例的操作
2020/02/03 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
HTML5制作酷炫音频播放器插件图文教程
2014/12/30 HTML / CSS
英国领先的男装设计师服装独立零售商:Repertoire Fashion
2020/10/19 全球购物
机电专业体育教师求职信
2013/09/21 职场文书
动员大会主持词
2014/03/20 职场文书
团代会主持词
2014/04/02 职场文书
服务之星事迹材料
2014/05/03 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
实习证明模板
2015/06/16 职场文书
返乡农民工证明
2015/06/24 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
基于docker安装zabbix的详细教程
2022/06/05 Servers