实现中文字串截取无乱码的方法
1. 想要实现中文字串截取无乱码的方法我们首先肯定会想到 mb_substr()
2. 如果不使用 PHP 自带的函数,可以自己封装一个函数也可以达到中文字符串的截取,这里拿 GB2312 编码来举例,GB2312 中文编码占 2 个字节,同理 UTF-8 编码也可以使用
1 function GBsubstr($string, $start, $length) { 2 if(strlen($string) > $length){ 3 $str = null; 4 $len = $start + $length; 5 for($i = $start; $i < $len; $i++){ 6 if(ord(substr($string, $i, 1)) > 0xa0){ 7 $str .= substr($string, $i, 2); // 如果编码为UTF-8,这里第三个参数改为 3 8 $i++; 9 } else { 10 $str .= substr($string, $i, 1); 11 } 12 } 13 return $str.'...'; 14 }else{ 15 return $string; 16 } 17 }