php 如何擷取中文字串

scutwang發表於2013-09-25

  在網站應用中時常需要對相應的字串進行擷取。最常用的是使用substr函式對字串進行擷取。

  然而,substr和strlen函式只在處理英文字串時可以正確使用,在擷取中文字元時,時常出現亂碼。這時,可以使用mb_substr和mb_strlen函式。後者與前者用法相似,區別在於後者需要在使用過程中新增一個引數。

  以mb_substr為例:

    string mb_substr ( string $str , int $start [, int $length [, string $encoding ]] )

  前三個引數與substr相同,最後一個引數為字串的編碼格式。

  例如:  

<?php
    $str = "中a文a測a試a字a符,使用mb_substr可以解決亂碼。";
    echo "輸出測試文字:".$str."<br>";
    
    echo "字串的長度為:".mb_strlen($str)."<br>";
    
    echo "擷取前五個字元:".mb_substr($str, 0, 5 , 'utf-8');
    

?>

輸出的結果為:

  

  這樣就解決了中文亂碼的問題。

相關文章