PHP substr截取中文字符出现乱码的具体解决办法
 
/**
  * PHP截取中文字符出现乱码的具体解决办法
  *
  * @param string $str
  * @param int $start
  * @param int $len
  * @return string $tmpstr
  */
 function cnSubstr($str, $start, $len) {
  $str_tmp = $len - $start;
  if (strlen($str) < $str_tmp) {
   $tmpstr = $str;
  }
  else {
   $tmpstr = "";
   $strlen = $start + $len;
   for($i = 0; $i < $strlen; $i++) {
    if(ord(substr($str, $i, 1)) > 0xa0) {
     $tmpstr .= substr($str, $i, 2); $i++;
    }
    else {
     $tmpstr .= substr($str, $i, 1);
    }
   } $tmpstr .= "...";
  }
  return $tmpstr;
 }

相关文章: