首页 > PHP > PHP截取等长中英文混合UTF8编码字符串

PHP截取等长中英文混合UTF8编码字符串

2009年8月12日
/*utf8编码时截取等长中英文字串*/ //英文标点[.,\"\\?!:_']   
<?   
function substr_utf8($string,$start,$length)   
{       //by aiou   
     $chars = $string;   
     //echo $string[0].$string[1].$string[2];   
     $i=0;   
     do{   
        if (preg_match ("/[0-9a-zA-Z]/", $chars[$i])){//纯英文   
            $m++;   
        }   
    else {$n++;     }//非英文字节,   
        $k = $n/3+$m/2;   
        $l = $n/3+$m;//最终截取长度;$l = $n/3+$m*2?   
        $i++;   
    } while($k < $length);   
     $str1 = mb_substr($string,$start,$l,'utf-8');//保证不会出现乱码   
     return $str1;   
}

原文:http://aiou.javaeye.com/blog/371094

admin PHP

  1. 2009年8月14日13:44 | #1

    我都能做到

  2. 2009年8月19日16:00 | #2

    很厉害哦

  1. 本文目前尚无任何 trackbacks 和 pingbacks.