关于PHP截取中英文字符串的几个问题

function substr_len($str, $len, $charset='utf-8'){
$len = intval($len);
if(!is_numeric($len) || $len < 0){
return false;
}

$str_len = strlen($str);
if($len >= $str_len){
    return $str;
}

if($charset == 'utf-8'){
    $char_step = 3;
}else{
    $char_step = 2;
}

$substr_i = 0;//截取长度
$act_substr = 0;

for($i = 0; $i < $str_len; $i++){
    if($substr_i >= $len){
        break;
    }

    $sub_val = substr($str, $i, 1);

    if(ord($sub_val) > 0xa0){
        $i += $char_step - 1;
        $act_substr += $char_step;
    }else{
        $act_substr ++;
    }
    $substr_i++;
}
$result_str = substr($str, 0, $act_substr);
return $result_str;

}

http://www.jb51.net/article/28864.htm

推荐mb_substr