您的位置:

PHP获取字符串长度的方法

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