php 获得汉字拼音首字母的函数

所属分类: 网络编程 / PHP编程 阅读数: 766
收藏 0 赞 0 分享

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 setTime 设置当前时间的代码

在用JAVA中有个 Calendar 可设置当前时间,在PHP中找了半天,终于给我找到了这个函数,嘎嘎
收藏 0 赞 0 分享

PHP 图片水印类代码

这个类功能很强大,细节很棒!希望大家喜欢,并积极指点
收藏 0 赞 0 分享

PHP实现手机归属地查询API接口实现代码

主要使用curl实现,需要开启php对curl的支持
收藏 0 赞 0 分享

php 解决旧系统 查出所有数据分页的类

不同之处在于 没有实现分页的系统, 默认全部查出来 现在就要不能动后台的基础上进行操作 可以采用 相应的 如下 代码
收藏 0 赞 0 分享

PHP的简易冒泡法代码分享

基础的东西,感觉代码还不够简洁,希望高手指导修改,脚本之家特为大家多准备了几个,方便测试学习
收藏 0 赞 0 分享

PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)

PHP 利用AJAX获取网页并输出的实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享

php数组一对一替换实现代码

以下方法能实现匹配关键词并分别对关键词做特殊处理的功能,需要的朋友可以参考下
收藏 0 赞 0 分享

关于UEditor编辑器远程图片上传失败的解决办法

因为单纯喜欢 UEditor 的界面,于是把项目中原先的编辑器进行的替换,但在后续操作中发现一些问题,就是远程图片上传
收藏 0 赞 0 分享

Windows下部署Apache+PHP+MySQL运行环境实战

本来嘛,部署PHP没什么复杂,找各种版本着实头疼了一下。
收藏 0 赞 0 分享

比较discuz和ecshop的截取字符串函数php版

网上看到一篇文章 discuz和ecshop截取字符串的两个函数,比较了一下两个版本的函数,都各有局限,只能在特定的前提下使用,但是学习一下有利于拓宽思路,了解PHP的扩展功能
收藏 0 赞 0 分享
查看更多