php求字串長度的函數有兩個:1、strlen()函數,可以計算英文字串的長度,語法為「strlen($string)」;2、mb_strlen()函數,可以透過設定字元編碼,計算英文字串、中文字串或中英混合字串的長度,語法為「mb_strlen($string,"字元編碼")」。
本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦
在PHP 中常用的計算字串長度的函數有兩個,分別是strlen() 和mb_strlen() 函數。當處理全英文字串時,這兩個函數的效果是一樣的,而處理中英文混合或純中文的字串時,這兩個函數會有一些差異:
strlen()函數可以計算英文字串的長度,但對中英文混合或純中文的字串,無法精確計算長度。
mb_strlen()函數可以計算英文字串、中文字串或中英混合字串的長度。
1、strlen() 函數求字串長度
strlen() 函數可以傳回給定字串的長度,其語法格式如下:
strlen($string)
參數$string 為需要計算長度的字串。如果 $string 為空則回傳 0。
注意:在strlen() 函數中,數字、英文、小數點、底線和空格佔一個字元長度;而一個GB2312 編碼的漢字佔兩個字元長度,一個UTF-8 編碼的漢字佔三個字元長度。
範例:
<?php header("Content-type:text/html;charset=utf-8"); $str = "hello world!"; echo '字符串 “'.$str.'” 的长度为:'.strlen($str).'<br>'; ?>
$str字串包含10個英文字母、1個空格和1個英文感嘆號,共12個字符,因此輸出長度為12。
但strlen()函數不適合用來計算中文字串長度,因為在該函數中一個GB2312 編碼的漢字佔兩個字元長度,一個UTF-8編碼的漢字佔三個字元長度。
<?php header("Content-type:text/html;charset=utf-8"); $str = "hello 你好!"; echo '字符串 “'.$str.'” 的长度为:'.strlen($str).'<br>'; ?>
2、mb_strlen() 函數求字串長度
mb_strlen() 函數同樣可以傳回字串的長度,語法格式如下:
mb_strlen($str [, $encoding = mb_internal_encoding()])
$str 為需要計算長度的字串
$encoding 是可選參數,為字元編碼,如果省略則使用內部字元編碼。
mb_strlen() 函數的傳回值為具有 $encoding 編碼的字串 $str 所包含的字元數,如果 $encoding 無效則傳回 false。
注意:與 strlen() 函數不同,在 mb_strlen() 函數中,無論是漢字,或是英文、數字、小數點、底線和空格,都只佔一個字元長度。
【範例】 使用 mb_strlen() 函數取得字串長度。
<?php header("Content-type:text/html;charset=utf-8"); $str = "hello 你好!"; echo '字符串 “'.$str.'” 的长度为:'.mb_strlen($str,"utf-8").'<br>'; $str = "欢迎来到PHP中文网!"; echo '<br>字符串 “'.$str.'” 的长度为:'.mb_strlen($str,'utf-8').'<br>'; ?>
可以看出,我們可以透過設定對應的$encoding
參數,就能很好的處理中文字串的長度問題。
推薦學習:《PHP影片教學》
以上是php求字串長度的函數是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!