網頁

2013年3月31日

[php] 截取中英文混合的字串

php有提供substr指令可以裁取字串,若全部都是中文字的話,處理起來問題還不大,但若是遇到字串裡中英文混雜在一起,就無法使用substr指令做處理,必須使用mb_substr指令處理。


指令範例:
    mb_internal_encoding("UTF-8");
    $string = "這是english";
    $mystring = mb_substr($string, 0, 5);
    echo $mystring;

輸出結果:

    這是eng


注意事項:
  • php.ini要加入擴展mbstring元件庫「extension=php_mbstring.dll」,才能使用mb_substr指令。
  • mb_substr依照mb_internal_encoding所指定的內部編碼格式,進行字串裁取,若字串來源是讀取外部檔案,需注意編碼格式是否需轉換,例如windows筆記本儲存的檔案,存檔後預設應該都是big5格式。