相同點:
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...