无乱码截取

来源:互联网 发布:小说网站常用cms 编辑:程序博客网 时间:2024/05/17 21:07
<?php
/*截取utf8字符串 || utf8Substr()*/
function GBsubstr($string, $start, $length) {
    if(strlen($string)>$length){
        $str=null;
        $len=$start+$length;
        for($i=$start;$i<$len;$i++){
            if(ord(substr($string,$i,1))>0xa0){
                $str.=substr($string,$i,2);
                $i++;
            }else{
                $str.=substr($string,$i,1);
            }
        }
        return $str.'...';
    }else{
        return $string;
   }
}
function utf8Substr($str, $from, $len)
{
    return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
                       '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
                       '$1',$str);
}

//mb_substr()、strlen()
$str = 'a你好,hello world!';
//echo mb_substr($str,0,2,"UTF-8").'***'.substr($str,0,2).'***'.mb_strcut($str,0,2);
//echo '<br />'.$str.'长度为'.strlen($str)."***".mb_strlen($str)."<br />";
//echo GBsubstr($str, 0, 2);
//echo utf8Substr('我','我爱我家abc','3')
?>