php分割包含中文的字串

2022-08-04 16:48:29 字數 804 閱讀 6220

這兩個函式都是獲取子字串,而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 19

2string 『中文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整數倍的字串請在後面補數字...