這兩個函式都是獲取子字串,而mb_substr()一般在字串中包含中文的情況下使用。
其中有個很重要的區別是mb_substr()按字來切分字串,不管中英文。
例子如下
1< ?php
2$operation="中文test英文abc";
3var_dump(strlen($operation
));4
$price = mb_substr ( $operation, 0, strlen ( $operation ), 'utf-8');
5var_dump($price);6
$price = mb_substr ( $operation, 0, strlen ( $operation )-8, 'utf-8');
7var_dump($price
);8 ?>
//輸出為
1 int 192string 『中文test英文abc』 (length=19)
3string 『中文test英文abc』 (length=19)
大家有沒有注意到,第二個函式我使用的是的$length引數長度為字串長減8啊,為何結果卻一樣呢?
這就是我今天要說的區別:mb_substr()將字元按字元數讀取,故讀取字串」中文test英文abc」的長度為11,而實際上中文字串佔三個位元組,所以輸出長度為19。
如果需要按位元組來擷取包含中文的字串可以使用mb_strcut()函式。另外需要注意的是mb開頭的函式都必須啟用php的php_mbstring.dll擴充套件才可使用。
C 字串分割,包括分割多個字元
1 如果字串格式為 string str abc def hijkl mn string s str.split new char string s str.split eval eval 重點是split中的函式是字元型,不是字串 結果就是 s 0 abc s 1 def s 2 hijkl s ...
PHP 分割字串
分割字串 利用 explode 函式分割字串到陣列 複製 如下 source hello1,hello2,hello3,hello4,hello5 按逗號分離字串 hello explode source for index 0 index split函式進行字元分割 分隔符可以是斜線,點,或橫線 ...
php實現 字串分割
str split 6 arr str split input,8 str pad 8 arr count arr 1 str pad arr count arr 1 8,0 str pad right 連續輸入字串,請按長度為8拆分每個字串後輸出到新的字串陣列 長度不是8整數倍的字串請在後面補數字...