热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

$str待截取的字符串$len截取的字符个数$chars已经截取的字符数$res保存的字符串$chars保存已经截取的字符串个数$offset截取的偏移量$length字符串的字节

//$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);

?>



推荐阅读
author-avatar
Li-zHihuAn
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有