首頁 >後端開發 >php教程 >g236 PHP 字串編碼截取函數(相容於utf-8和gb2312)

g236 PHP 字串編碼截取函數(相容於utf-8和gb2312)

WBOY
WBOY原創
2016-07-29 08:39:481011瀏覽

複製程式碼 程式碼如下:


//截取字串長度。支援utf-8和gb2312編碼。若為gb2312,先將其轉為utf-8,在utf-8的基礎上截取然後再轉換回來
function cut_string($str,$from=1,$length=10,$code='utf- 8',$rear='...'){
    if($code!='utf-8'){//總是將字串轉為utf-8編碼
        $str=iconv(>        $str=iconv( $code,'utf-8',$str);
    }
    $str_len=mb_strlen($str,'utf-8');//字串的長度
   str_len){//若截取開始位置大於字串長度,截取後面$length個
        $from=$str_len-$length+1;
     ;
    }
    //相容ucs-4編碼
    $i=0;//位元組計數
    0;//開始被截取的字元位置
    $tag=true;//標誌$from_len是否已賦值
    for($temp_len=0;($temp_len-$from_len        $byte_code=ord(substr($str,$i,1));//一個位元組的編碼
        if($temp_len+1/$f==開始截取的開始位元組位置
            $from_i=$i;$from_len=$temp_len;$tag=false;
 $byte_code            $i++;
        $i++; 191&&$byte_code            $i+=2;
      40){
            $i+=3;
        }
        if($byte_code>239&&$byte_code             if($byte_code>248&&$byte_code            $i+=5;
        }
        if($byte_code>252&&$byte_code    }
    return iconv('utf-8',$code,substr ($str,$from_i,$i-$from_i).$rear);
}


以上就介紹了g236 PHP 字串編碼截取函數(相容utf-8和gb2312),包括了g236方面的內容,希望對PHP教程有興趣的朋友有所幫助。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn