utf8字符串快速截取
//按字节数截取如果卡在一个字中间就向左移位 直到一个新宽字符结束function utf8cutlen($s, $l){
$n = strlen($s);
if($s == '' || $n <= $l){
return $s;
}
$l--;
while(strlen($s{$l})){
$c = ord($s{$l});
if(!($c&0x80)) return substr($s, 0, $l+1);
if(($c & 0xC0) == 0xC0) return substr($s, 0, $l);
$l--;
}
return '';
}
//按汉字数截取
function utf8cutnum($s, $l){
$n = strlen($s);
$i=$k=0;
while(strlen($s{$i})){
$c = ord($s{$i});
if (!($c & 0x80)) $k+=0.5;
elseif (($c & 0xC0) == 0xC0) $k++;
if($k>$l){
break;
}
$i++;
}
return substr($s, 0, $i);
}
本人原创,欢迎指正 uponcn@gmail.com 可以考虑下php自带的:
mb_strcut ( string str, int start [, int length [, string encoding]] )
mb_strlen ( string str [, string encoding] ) 许多空间默认都不支持宽字符截取的
页:
[1]