1. 程式人生 > >無亂碼截取字符串,中英文混合(轉)

無亂碼截取字符串,中英文混合(轉)

style lower charset rto num cnblogs break set left

//無亂碼截取字符串,中英文混合
    function left($str, $len, $charset="utf-8"){
        //如果截取長度小於等於0,則返回空
        if( !is_numeric($len) or $len <= 0 ){
            return "";
        }
        //如果截取長度大於總字符串長度,則直接返回當前字符串
        $sLen = strlen($str);
        if( $len >= $sLen ){
            return $str;
        } 
        
if ( strtolower($charset) == "utf-8" ){ $len_step = 3; }else{ $len_step = 2; } $len_i = 0; $substr_len = 0; for( $i=0; $i < $sLen; $i++ ){ if ( $len_i >= $len ) break; if( ord(substr($str,$i,1)) > 0xa0 ){
$i += $len_step - 1; $substr_len += $len_step; }else{ $substr_len ++; } $len_i ++; } $result_str = substr($str,0,$substr_len ); return $result_str; }

無亂碼截取字符串,中英文混合(轉)