###### 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
---