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
我都能做到
很厉害哦
“【记者即时播报】青歌赛再爆抽签结果 二炮武警强强对话”
“瑞图集团“牵手”二炮政治部电视艺术中心共同打造二十六集电视连续剧《战北平》”
上面两个字符串,截取超过24后就不等长了,第一个字符串的最后一个字”话”怎么也出不来