PHP截取等长中英文混合UTF8编码字符串
/*utf8编码时截取等长中英文字串*/ //英文标点[.,\"\\?!:_'] <? function substr_utf8($string,$start,$length) { //by aiou $chars = $string; //echo $string[0].$string[1].$string[2]; $i=0; do{ if (preg_match ("/[0-9a-zA-Z]/", $chars[$i])){//纯英文 $m++; } else {$n++; }//非英文字节, $k = $n/3+$m/2; $l = $n/3+$m;//最终截取长度;$l = $n/3+$m*2? $i++; } while($k < $length); $str1 = mb_substr($string,$start,$l,'utf-8');//保证不会出现乱码 return $str1; }
原文:http://aiou.javaeye.com/blog/371094
我都能做到
很厉害哦