strlen和mb strlen有什麼區別

2021-09-08 19:20:32 字數 919 閱讀 9147

相同點:

strlen和mb_strlen這兩個函式都是用來獲取字串的長度的

不同點:

1.strlen是獲取字串的總位元組數,針對的是單位元組編碼字元。對於多位元組編碼,如gbk和utf8,使用strlen得到的不是字元個數而是總位元組數。使用mb_strlen可以獲取多位元組編碼的字元個數。

注意: 使用mb_strlen必須要開啟mbstring擴充套件和指定字符集

下面用應用例項說明:

strlen(string $string) : int

成功則返回字串 string 的長度;如果 string 為空,則返回 0。

mb_strlen(string $str [,string $encoding=mb_internal_encoding() ] ) : mixed

引數說明:

str要檢查長度的字串。

encoding

encoding 引數為字元編碼。如果省略,則使用內部字元編碼。

返回值:

返回具有encoding編碼的字串str包含的。多位元組的字元數被計算為1

如果encoding無效則返回false

例項1:

$chuan="this is a test!";

echo strlen($chuan);

echo mb_strlen($chuan);

輸出結果一樣兩個都是15

例項2:

$chuan="我是中國人!";

echo strlen($chuan);

echo mb_strlen($chuan,'utf8');

輸出:

第乙個是16,因為乙個漢字佔3個位元組,嘆號佔乙個,加起來是16

第二個是6,因為計算的是字元的個數,每個漢字佔乙個字元

PHP中strlen和mb strlen的區別

在 php中,strlen與 mb strlen是求字串長度的函式 測試時檔案的編碼方式要是utf8 str 中文a字1符 echo strlen str 14 echo mb strlen str,utf8 6 echo mb strlen str,gbk 8 echo mb strlen str...

PHP中strlen和mb strlen的區別

在php中常見的計算字串長度的函式有 strlen和mb strlen.當字元全是英文本元的時候,兩者是一樣。這裡主要比較一下,中英文混排的時候,兩個計算結果。在php中,strlen與mb strlen是求字串長度的函式,但是對於一些初學者來說,如果不看手冊,也許不太清楚其中的區別。下面通過例子,...

PHP strlen和mb strlen的區別

先看案例 echo mb internal encoding echo str d.c is 中國人 echo strlen str echo echo mb strlen str,utf 8 echo echo mb strlen str,gbk 輸出結果 utf 8 1610 12在strlen...