PHP头条
热点:

php实现中文截取无乱码的方法,php按字符无乱码截取中文的方法


//$str 待截取的字符串

//$len 截取的字符个数

//$chars 已经截取的字符数

//$res 保存的字符串

//$chars 保存已经截取的字符串个数

//$offset 截取的偏移量

//$length 字符串的字节数

//若$len>$str的字符个数,造成无谓的while循环,($offset

function utf8sub($str,$len){

if($len<&#61;0){

return ;

}

$res&#61;"";

$offset&#61;0;

$chars&#61;0;

$length&#61;strlen($str);

while($chars

$hign&#61;decbin(ord(substr($str,$offset,1)));

if(strlen($hign)<8){

$count&#61;1;

}elseif(substr($hign,0,3)&#61;&#61;"110"){

$count&#61;2;

}elseif(substr($hign,0,4)&#61;&#61;"1110"){

$count&#61;3;

}elseif(substr($hign,0,5)&#61;&#61;"11110"){

$count&#61;4;

}elseif(substr($hign,0,6)&#61;&#61;"111110"){

$count&#61;5;

}elseif(substr($hign,0,7)&#61;&#61;"1111110"){

$count&#61;6;

}

$res.&#61;substr($str,$offset,$count);

$offset&#43;&#61;$count;

$chars&#43;&#61;1;

}

return $res;

}

function utf8sub1($str,$len){

$chars&#61;0;

$res&#61;"";

$offset&#61;0;

$length&#61;strlen($str);

while($chars

$hign&#61;decbin(ord(substr($str,$offset,1)));

if(strlen($hign)<8){

$count&#61;1;

}elseif($hign & "11100000"&#61;&#61;"11000000"){

$count&#61;2;

}elseif($hign & "11110000"&#61;&#61;"11100000"){

$count&#61;3;

}elseif($hign & "11111000"&#61;&#61;"11110000"){

$count&#61;4;

}elseif($hign & "11111100"&#61;&#61;"11111000"){

$count&#61;5;

}elseif($hign & "11111110"&#61;&#61;"11111100"){

$count&#61;6;

}

$res.&#61;substr($str,$offset,$count);

$chars&#43;&#43;;

$offset&#43;&#61;$count;

}

return $res;

}

$a&#61;"中华ah人民hdj";

echo utf8sub($a,5);

?>



www.phpzy.comtrue/phpzx/52133.htmlTechArticlephp实现中文截取无乱码的方法,php按字符无乱码截取中文的方法 //$str 待截取的字符串 //$len 截取的字符个数 //$chars 已经截取的字符数 //$res 保存的字符串 //$chars 保存已经截取的字符串个...

相关文章

PHP之友评论

今天推荐