PHP截取指定长度的中英文混合字符串,不出现乱码

发布时间:2009年05月19日      浏览次数:622 次
//截取指定长度的中英文混合字符串,保证不出现乱码的情况
function my_substr($str,$limit_length) {
      $return_str = "";//返回的字符串
      $len = mb_strlen($str,'utf8');// 以utf-8格式求字符串的长度,每个汉字算一个长度
      if ( $len > $limit_length ){
            $omit = "...";
      }else{
            $limit_length = $len;
      }
      for ($i = 0; $i < $limit_length; $i++) {
            $curr_char = mb_substr($str,$i,1,'utf8');//以utf-8格式取得第$i个位置的字符,取的长度为1
            $curr_length = ord($curr_char) > 127 ? 2 : 1;//如果大于127,则此字符为汉字,算两个长度
            $return_str .= $curr_char;
      }
      return $return_str.$omit;
}
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!