strlen與mb_strlen都是計算字符串長度的函數,但是我們一般比較常用都是strlen這個,但是還有mb_strlen。這兩個都是計算長度,但是差別在哪呢?簡單的說可以參考下面:

strlen:計算字元長度。

mb_strlen:計算字的長度。

這樣說可能不太清楚,寫個範例來說明:

<?php

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

?>

你會看到的結果:

字串:abc
strlen:3
mb_strlen:3

如果你字串用的是英文數字或是符號,你回覺得應該沒差吧!

但是如果是下面這個範例呢?

<?php

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

?>

你會看到的結果:

字串:給我100元
strlen:12
mb_strlen:6

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

 

參考資料:

mb_strlen ( string $str [, string $encoding ] )

第一個參數:要被計算的字串。

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

 

參考網址:http://tw2.php.net/mb_strlen

arrow
arrow
    全站熱搜

    阿基 發表在 痞客邦 留言(3) 人氣()