PHP mb_strlen 函數語法
mb_strlen( $string, string encoding )
PHP mb_strlen 函數有兩個參數,第一個參數是 $string 是必要項目,也就是要計算長度的字串,第二個參數 string encoding 則是用來設置字串編碼用的,會使用 mb_strlen 函數,通常都是為了這個自訂字串編碼的功能而來。PHP mb_strlen 函數範例
<?php
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';
$TestString = "測試 mb_strlen 函數";
echo '原始字串長度用 strlen 函數的計算結果是:'.strlen($TestString).'<br>';
echo '原始字串長度用 mb_strlen 函數的計算結果是:'.mb_strlen($TestString,'utf-8');
?>
範例的計算結果echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';
$TestString = "測試 mb_strlen 函數";
echo '原始字串長度用 strlen 函數的計算結果是:'.strlen($TestString).'<br>';
echo '原始字串長度用 mb_strlen 函數的計算結果是:'.mb_strlen($TestString,'utf-8');
?>
原始字串長度用 strlen 函數的計算結果是:23
原始字串長度用 mb_strlen 函數的計算結果是:15
為了比較 strlen 函數與本篇主角 mb_strlen 函數的差異,我們在範例中讓兩個函數分別去判斷原始字串 $TestString 的字串長度,從範例的計算結果可以得知,strlen 計算出字串長度為 23,而 mb_strlen 計算出 15,哪個正確,以常理來說應該是 mb_strlen 才是正確的,為什麼會這樣呢?其實我們也不能說 strlen 的計算結果是錯的,而是 strlen 函數計算的長度是字元數,範例中的繁體中文每個文字占用掉 3 個字元,所以結果才會是 23,而 mb_strlen 則因為設定了字元編碼為萬國碼 utf-8,所以每個中文字會被視為 1,而不是 3,最終計算出來的結果就是 15,標準答案。原始字串長度用 mb_strlen 函數的計算結果是:15
延伸閱讀