一、strlen函數
strlen函數是PHP中最基本的獲取字符串長度的方法,它返回一個字符串的長度,包括其中的空格和特殊字符。
$str = "hello world"; echo strlen($str); //輸出11
需要注意的是,因為strlen函數是按字節數計算長度的,在使用中要注意中英文字符的區別。如果要求按字符計算長度,可以通過mb_strlen函數實現。
二、mb_strlen函數
mb_strlen函數是在考慮中文等非ASCII字符的情況下計算字符串長度的函數,其語法如下:
int mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )
其中$str為需要計算長度的字符串,$encoding為指定字符串編碼格式,如果不指定則使用mb_internal_encoding()函數返回的編碼格式。
$str = "你好,世界!"; echo mb_strlen($str, "UTF-8"); //輸出7
三、iconv_strlen函數
iconv_strlen函數也可以計算包含中文等非ASCII字符的字符串長度,其語法如下:
int iconv_strlen ( string $str [, string $encoding = ini_get("iconv.internal_encoding") ] )
其中$str為需要計算長度的字符串,$encoding為指定字符串編碼格式,如果不指定則使用ini_get(“iconv.internal_encoding”)函數返回的編碼格式。
$str = "你好,世界!"; echo iconv_strlen($str, "UTF-8"); //輸出7
四、mb_strwidth函數
mb_strwidth函數可以計算一個字符串在屏幕上所佔用的寬度,其語法如下:
int mb_strwidth ( string $str [, string $encoding = mb_internal_encoding() ] )
其中$str為需要計算寬度的字符串,$encoding為指定字符串編碼格式,如果不指定則使用mb_internal_encoding()函數返回的編碼格式。
需要注意的是,mb_strwidth函數會將半角字符視為一個字符,全角字符視為兩個字符。
$str = "Hello, 世界"; echo mb_strwidth($str, "UTF-8"); //輸出13
五、preg_match_all函數
preg_match_all函數可以通過正則表達式匹配字符串的各個部分,並返回匹配結果數量,將這個數量就可以計算出字符串的長度。
$str = "The quick brown fox jumps over the lazy dog."; preg_match_all('/./us', $str, $matches); echo count($matches[0]); //輸出43
需要注意的是,由於一個中文字符可能會被編碼成2個及以上的字符,因此必須指定/u選項來匹配Unicode字符。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/150791.html