考察是否有encoding的知识和意识。
编写测试代码如下
<?php
/**
* 获取包含中英文的字符串长度
*/
$str = '测试abc123';
echo strlen($str)."<br>";
echo mb_strlen($str,'utf-8');
?>
输出结果为12和8,PHP自带的函数strlen()是通过计算字符串所占字节数来统计字符串长度的,一个英文字符占1字节,而中文则不然,在gbk编码下每个中文字符所占字节为2,而在utf-8编码下每个中文字符所占字节为3,测试代码用的UTF-8编码,所以输出12,函数mb_strlen(string $str[,string $encoding = mb_internal_encoding()])需要扩展库mb_string.dll才能使用,第一个参数str是要检查长度的字符串,第二个参数encoding为字符编码,如果省略,则使用内部字符编码,函数返回具有encoding编码的字符串str包含的字符数,多字节的字符被计为1,如果给定的encoding无效则返回FALSE,所以输出结果为8。