php 获取字符串完整拼音,php获取中文字符串的首字符拼音字母

$str="这是一个测试程序1";

echo getFirstCharCode($str);

function getFirstCharCode($str){

$str= iconv("UTF-8","gb2312", $str);

$targetChar='*';

$i=0;

while($i

$tmp=bin2hex(substr($str,$i,1));

if($tmp>='B0'){ //汉字的开始

$t=getLetter(hexdec(bin2hex(substr($str,$i,2))));

$targetChar=$t==-1 ? '*' : $t ;

//printf("%c",$t==-1 ? '*' : $t );

break;

//$i+=2;

}

else{

$targetChar=substr($str,$i,1);

break;

//printf("%s",substr($str,$i,1));

//$i++;

}

}

if(is_numeric($targetChar)){

return chr($targetChar);

}

else{

return $targetChar;

}

}

function getLetter($num){

$limit=array( //gb2312 拼音排序

array(45217,45252), //A

array(45253,45760), //B

array(45761,46317), //C

array(46318,46825), //D

array(46826,47009), //E

array(47010,47296), //F

array(47297,47613), //G

array(47614,48118), //H

array(0,0), //I

array(48119,49061), //J

array(49062,49323), //K

array(49324,49895), //L

array(49896,50370), //M

array(50371,50613), //N

array(50614,50621), //O

array(50622,50905), //P

array(50906,51386), //Q

array(51387,51445), //R

array(51446,52217), //S

array(52218,52697), //T

array(0,0), //U

array(0,0), //V

array(52698,52979), //W

array(52980,53688), //X

array(53689,54480), //Y

array(54481,55289), //Z

);

$char_index=65;

foreach($limit as $k=>$v){

if($num>=$v[0] && $num<=$v[1]){

$char_index+=$k;

return $char_index;

}

}

return -1;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值