strlen()與mb_strlen()都是用于獲取字符串長度的,那么它們兩個有什么不同?
strlen()與mb_strlen()的不同之處在于mb_strlen()第二個參數可以用于指定字符編碼。那么為什么要指定字符編碼?因為PHP內置的字符串長度函數strlen無法正確處理中文字符串,所以它得到的只是字符串所占的字節數。對于UTF-8編碼的中文,一個漢字占三個字節。
<?php
$a = '你好a';
echo strlen($a);//輸出的結果是7
?>
我知道有時候你想要的結果是3。那么怎么解決呢?就是用mb_strlen()。例如:
<?php
$a = '你好a';
echo mb_strlen($a,utf-8);//輸出是3
?>
對于mb_strlen()如果不寫第二個參數,就會使用內部編碼,效果就和strlen()一樣。