PHP strlen和mb strlen的區別

2021-09-01 09:01:06 字數 664 閱讀 5563

先看案例:

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計算中,對待乙個utf8的中文字元,處理為3個位元組長度,所以為3+1+2+1+9=16個

當mb_strlen的內碼選擇為utf-8的時候,則會將中文字元當成乙個字元,所以為3+1+2+1+3=10;

當mb_strlen的內碼選擇為gbk的時候,乙個中文字元當成1.5個字元來處理來處理,最後就是:3+1+2+1+4.5=11.5

函式:mb_internal_encoding()會得到當前php使用的內部編碼

strlen,得到的是字串所佔的位元組數,所以在檢視乙個字串的長度的時候,strlen並不能得到我們需要的真實值

mb_strlen 函式可以很好的處理這一點

**:

PHP strlen和mb strlen的區別詳解

strlen是php的內建函式mb strlen是php的擴充套件函式,其依賴於mbstring模組 strlen算出的是字串的總位元組數,不論php內部設定的字符集為utf 8 gbk iso 8859 1,其中乙個中文佔3個位元組,大小寫英文 數字 英文狀態下的特殊字元都佔1個位元組mb str...

PHP strlen 函式和strpos 函式

strlen 函式返回字串的長度 字元數 echo strlen hello world 上面的 將輸出 12 strpos 函式用於在字串內查詢乙個字元或一段指定的文字。如果在字串中找到匹配,該函式會返回第乙個匹配的字元位置。如果未找到匹配,則返回 false。下面的例項在字串 hello wor...

和 區別和聯絡, 和 區別和聯絡

和 區別和聯絡,和 區別和聯絡,實際專案中,什麼情況用哪種?首先,和 的聯絡 共同點 和 都可以用作 邏輯與 運算子,都是雙目運算子。具體要看使用時的具體條件來決定。無論使用哪種運算子,對最終的運算結果都沒有影響。情況1 當上述的運算元是boolean型別變數時,和 都可以用作邏輯與運算子。情況2 ...