一、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字符。