中央論壇 - CENTER BBS

標題: [PHP]strlen & mb_strlen - 計算字串長度函數!基本用法教學與兩者差異 [打印本頁]

作者: 郭子錢    時間: 2013-9-6 17:11
標題: [PHP]strlen & mb_strlen - 計算字串長度函數!基本用法教學與兩者差異
strlen與mb_strlen都是計算字符串長度的函數,但是我們一般比較常用都是strlen這個,但是還有mb_strlen。這兩個都是計算長度,但是差別在哪呢?簡單的說可以參考下面:

strlen:計算字元長度。

mb_strlen:計算字的長度。




範例:
  1. <?php

  2.    $str="abc";
  3.    echo "字串:".$str."<BR>";
  4.    echo "strlen:".strlen($str)."<BR>";
  5.    echo "mb_strlen:".mb_strlen($str,'utf-8')."<BR>";

  6. ?>
複製代碼
你會看到的結果:

[boxbeige]字串:abc
strlen:3
mb_strlen:3[/boxbeige]

如果字串用的是英文數字或是符號,兩者無差!

但是如果是下面這個範例:
  1. <?php

  2. $str="給我100元";
  3. echo "字串:".$str."<BR>";
  4. echo "strlen:".strlen($str)."<BR>";
  5. echo "mb_strlen:".mb_strlen($str,'utf-8')."<BR>";

  6. ?>
複製代碼
結果:

[boxbeige]字串:給我100元
strlen:12
mb_strlen:6[/boxbeige]

從這個例子可以看到,用mb_strlen,以utf-8來判斷,他會計算的是多少個字。但是如果用strlen,他就會計算出12的結果(中文字3個*每個字3個字元+三個英文字)。



參考資料:
  1. mb_strlen ( string $str [, string $encoding ] )
複製代碼
第一個參數:要被計算的字串。

第二個參數:參數為字元編碼。如果省略,則使用内部字元编碼。




歡迎光臨 中央論壇 - CENTER BBS (https://www.centerbbs.com/) Powered by Discuz! X3