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;}
}
或者