###### tags: `PHP` `字串` `substr` `mb_substr` # 2022.4.18 常用字串函式 substr / mb_substr - substr 用於英文系統單字元字串,因減少判斷英文之外的語言, 在單只有英文使用者的情況下,選用此字集效能會更佳 一個中文字算三個字元,當字元不夠顯示完整的中文字時,產生亂碼並無法顯示後面的部分 *例: $str="今天本地確診三千例" ; $sub=substr($str,2,4) ; echo $sub ; 字元的值 第一個數為開始的數,第二個為顯示的字元數量 這個例子為 2,4 因為第一個值從2開始,所以"今"字的前兩個字元未顯示 ,第三個字元顯示在"今"裡面 所以"今"需要三個字元才能正確顯示 ,但因為只有一個字元所以顯示為亂碼 4減掉1剩下3個字元 , "天"剛好使用完剩下的3個字元 ,所以可以正確顯示出"天" 這個例子會顯示出 " ? 天 " --- - mb_substr (**m**ultiple **b**yte) 用於多語系,多字元字集,可以正確顯示英文之外的文字 就算中英混雜 ,也可以一個字元對應一個字來正確顯示 *例: ``` $str="今天本地確診三千例" ; $sub=mb_substr($str,2,4) ; echo $sub ; ``` 同樣的例子 ,因從2開始所以不顯示 " 今天 " ,顯示4個字為 " 本地確診 " 為了避免之後更新時需要添加其它語言而產生的麻煩,通常建議用 mb_substr ---