PHP计算字符串长度需据编码选函数:单字节用strlen,UTF-8等多字节推荐mb_strlen(需启用mbstring),iconv_strlen为备选,str_split+count和preg_match_all仅适用于特殊场景。

如果您需要获取PHP字符串的字符数量,PHP提供了专门用于计算字符串长度的内置函数。以下是使用该函数的具体步骤:
一、使用strlen函数获取字符串长度
strlen函数用于返回字符串中字节数,适用于单字节编码(如ASCII、ISO-8859-1)环境下的字符串长度计算。它不适用于多字节字符集(如UTF-8)中含中文、日文等字符的准确计数。
1、定义一个字符串变量,例如 $str = "Hello";
2、调用 strlen($str) 函数,将字符串作为参数传入。
立即学习“PHP免费学习笔记(深入)”;
3、将返回值赋给变量或直接输出,例如 echo strlen($str);
4、运行脚本后,输出结果为 5。
二、使用mb_strlen函数处理多字节字符串
mb_strlen函数是多字节字符串长度计算函数,可正确识别UTF-8等编码中的中文、日文、韩文等字符,每个汉字按1个字符计数,需确保mbstring扩展已启用。
1、确认PHP配置中已启用 mbstring 扩展,可通过 phpinfo() 查看 mbstring support 是否为 enabled。
2、定义UTF-8编码字符串,例如 $str = "你好World";
3、调用 mb_strlen($str, 'UTF-8'),显式指定编码参数。
4、输出结果为 7(“你好”占2,“World”占5)。
三、使用iconv_strlen函数替代方案
iconv_strlen函数依赖iconv扩展,也可用于多字节字符串长度统计,其行为与mb_strlen类似,但底层实现不同,适用于部分未启用mbstring但已启用iconv的环境。
1、检查 iconv 扩展是否可用,执行 var_dump(function_exists('iconv_strlen'));
2、定义字符串 $str = "测试abc";
3、调用 iconv_strlen($str, 'UTF-8'),编码参数必须明确指定。
4、输出结果为 5(“测试”计为2,“abc”计为3)。
四、通过str_split配合count函数间接计算
该方法将字符串按单字符分割为数组,再统计数组元素个数,仅适用于ASCII字符串或已知单字节安全场景,对UTF-8中文会因字节拆分导致错误计数,不推荐用于多字节环境。
1、定义字符串 $str = "abc";
2、执行 $arr = str_split($str);
3、调用 count($arr) 获取数组长度。
4、输出结果为 3。
五、使用正则表达式匹配字符并计数
通过 preg_match_all 配合 Unicode 字符类 \X 或 u 模式修饰符,可逐个匹配Unicode字符,适用于需自定义字符边界逻辑的特殊场景,性能低于内置函数。
1、定义字符串 $str = "a你b好";
2、执行 preg_match_all('/./u', $str, $matches);
3、获取匹配结果数量 count($matches[0]);
4、输出结果为 5。











