PHP 实现中文截取无乱码的方法
需知:
- 中文字符在gbk编码下为2个字符,utf-8下为3个字符
- 中文字符的ASCII值是从0xa0后开始的
- 通过ord()函数可以返回字符串中第一个字符的ASCII值,chr()函数作用相反
方法:
function GBsubstr($string, $start, $length) {if(strlen($string)>$length){$str=null;$len=$start+$length;for($i=$start;$i<$len;$i++){if(ord(substr($string,$i,1))>0xa0){//判断字符的ascii值$str.=substr($string,$i,2);$i++;}else{$str.=substr($string,$i,1);}}return $str;}else{return $string;}
}
或者