首页 > php框架 > php 中文字符截取函数

php 中文字符截取函数

这是一款专业用来处理php 中文字符裁取函数哦,解决了中文字符截取会出现筹码的问题哦。

这是一款专业用来处理php 中文字符裁取函数哦,解决了中文字符截取会出现筹码的问题哦。

global $charset;

 if(strlen($string) <= $length) {
  return $string;
 }
 $string = str_replace(array(&amp;, &quot;, &lt;, &gt;), array(&, ", <, >), $string);
 $strcut = ;
 if(strtolower($charset) == utf-8) {
  $n = $tn = $noc = 0;
  while($n < strlen($string)) {
   $t = ord($string[$n]);
   if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
    $tn = 1; $n++; $noc++;
   } elseif (194 <= $t && $t <= 223) {
    $tn = 2; $n += 2; $noc += 2;
   } elseif (224 <= $t && $t < 239) {
    $tn = 3; $n += 3; $noc += 2;
   } elseif (240 <= $t && $t <= 247) {
    $tn = 4; $n += 4; $noc += 2;
   } elseif (248 <= $t && $t <= 251) {
    $tn = 5; $n += 5; $noc += 2;
   } elseif ($t == 252 || $t == 253) {
    $tn = 6; $n += 6; $noc += 2;
   } else {
    $n++;
   }
   if($noc >= $length) {
    break;
   }
  }
  if($noc > $length) {
   $n -= $tn;
  }
  $strcut = substr($string, 0, $n);
 } else {
  for($i = 0; $i < $length; $i++) {
   $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
  }
 }
 $strcut = str_replace(array(&, ", <, >), array(&amp;, &quot;, &lt;, &gt;), $strcut);

 return $strcut.$dot;
}


永久链接:http://www.phprm.com/frame/php1004927.html

转载随意!带上文章地址吧。

标签:none

发表留言