`
ljqian
  • 浏览: 6790 次
  • 性别: Icon_minigender_1
  • 来自: 常熟
社区版块
存档分类
最新评论
收藏列表
标题 标签 来源
PHP获取字符串第一个字的大写首字母 php, 字符串大写首字母
//页面编码需要UTF-8
function pingyinFirstChar($sourcestr){
   $returnstr='';
   $i=0;
   $n=0;
   $str_length=strlen($sourcestr);//字符串的字节数
    while ($i<=$str_length) {
      $temp_str=substr($sourcestr,$i,1);
      $ascnum=Ord($temp_str);//得到字符串中第$i位字符的ascii码
       if ($ascnum>=224){  //如果ASCII位高与224,
       $returnstr=$returnstr.getHanziInitial(substr($sourcestr,$i,3)); //根据UTF-8编码规范,将3个连续的字符计为单个字符
         $i=$i+3;          //实际Byte计为3
      }else if($ascnum>=192){  //如果ASCII位高与192,
         $returnstr=$returnstr.getHanziInitial(substr($sourcestr,$i,2)); //根据UTF-8编码规范,将2个连续的字符计为单个字符
         $i=$i+2;          //实际Byte计为2
      }else if($ascnum>=65 && $ascnum<=90){  //如果是大写字母,
         $returnstr=$returnstr.substr($sourcestr,$i,1);
         $i=$i+1;          //实际的Byte数仍计1个
      }else{  //其他情况下,包括小写字母和半角标点符号,
         $returnstr=$returnstr.strtoupper(substr($sourcestr,$i,1));  //小写字母转换为大写
         $i=$i+1;          //实际的Byte数计1个
      }
   }
   return $returnstr;
}

  function getHanziInitial($s0){
   if(ord($s0) >= "1" and ord($s0) <= ord("z")){
      return strtoupper($s0);
   }
   $s = iconv("UTF-8", "gb2312//IGNORE", $s0); // 不要转换成GB2312内没有的字符哦,^_^
   $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 $s0; // 返回原字符,不作转换。(标点、空格、繁体字都会直接返回)
}
Global site tag (gtag.js) - Google Analytics