php取得字符串首字母的方法

yipeiwu_com6年前PHP代码库

本文实例讲述了php取得字符串首字母的方法。分享给大家供大家参考。具体实现方法如下:

<?php
$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
);
$str="A:这是一个测试程序1";
$str= iconv("UTF-8","gb2312", $str);
echo $str."</br>";
$i=0;
while($i<strlen($str) ) {
  $tmp=bin2hex(substr($str,$i,1));
  if($tmp>='B0'){ //汉字的开始
    $t=getLetter(hexdec(bin2hex(substr($str,$i,2))));
    printf("%c",$t==-1 ? '*' : $t );
    $i+=2;
  }
  else{
    printf("%s",substr($str,$i,1));
    $i++;
  }
}
function getLetter($num){
  global $limit;
  $char_index=65;
  foreach($limit as $k=>$v){
    if($num>=$v[0] && $num<=$v[1]){
      $char_index+=$k;
      return $char_index;
    }
  }
  return -1;
}
?>

希望本文所述对大家的php程序设计有所帮助。

相关文章

thinkphp实现163、QQ邮箱收发邮件的方法

thinkphp实现163、QQ邮箱收发邮件的方法

用了很长时间去一步一步摸索,终于先在163 网易邮箱上测试成功了,下面就把这个过程分享给大家。 在进入正题这前先看下网易(163)邮箱的服务器地址和端口号: 一、前期准备 使用网易邮...

php curl post 时出现的问题解决

在 a.php 中以 POST 方式向 b.php 提交数据,但是 b.php 下就是无法接收到数据,而 CURL 操作又显示成功,非常诡异。原来,“传递一个数组到CURLOPT_POS...

php array_intersect比array_diff快(附详细的使用说明)

如果要求数组 $a 与数组 $b 的差集的个数,应该使用 count($a) - count(array_intersect($a, $b)),而不要用 count(array_diff...

php中switch语句用法详解

本文介绍php中的switch语句的用法,它跟其他语句中的switch用法差不多的,但注意有有一个break语句。 PHP中switch语句的标准语法: switch (expre...

php生成图片验证码的方法

php生成图片验证码的方法

本文为大家分享了php生成图片验证码的方法,供大家参考,具体内容如下 首先从指定字符集合中随机抽取固定数目的字符,以一种不规则的方法画在画布上,再适当添加一些干扰点和干扰元素,最后将图片...