PHP实现字符串截断不乱码的方法
原创
52cxy
03-26 09:48
阅读数:1042
使用substr截断字符时,如字符串中同时含中英文,可能会出现乱码的情况,下面分享一个不会出现乱码的方法:
//从字符串开头开始截取指定长度的子串
//一个英文字符算0.5个长度
//一个汉字算1个长度
function getSubStr($str, $len){
$tmpstr = "";
$getCount = 0;
$maxLen = strlen($str);
for($i=0;$i<$maxLen;$i++){
if(ord($str[$i]) >= 224){
$getCount++;
if($getCount>$len) break;
$tmpstr .= substr($str, $i, 3);
$i++;$i++;
}
elseif(ord($str[$i]) >= 192){
$getCount++;
if($getCount>$len) break;
$tmpstr .= substr($str, $i, 2);
$i++;
}
else{
$tmpstr .= substr($str, $i, 1);
$getCount += 0.5;
}
if($getCount>=$len) break;
}
return $tmpstr;
}共0条评论