mb_strlen() 函数返回字符串的长度,与 strlen 不同的时,它可以通过设置字符编码从而返回对应的字符数,很好的处理了中文字符串的长度问题。
使用 mb_strlen 要开启 mbstring 扩展。
echo mb_strlen("菜鸟教程RUNOOB"); =========》 10
echo strlen("菜鸟教程RUNOOB"); =============》18(一个中文3个字符)
mb_substr() 函数返回字符串的一部分,之前我们学过 substr() 函数,它只针对英文字符,如果要分割的中文文字则需要使用 mb_substr()。如果 start 参数是负数且 length小于或等于 start,则 length 为 0。mb_substr(“菜鸟教程”,start, length);
mb_substr("菜鸟教程", 0, 2); ================》‘菜鸟'
//分割字符串
function mbStrSplit ($string, $len=1) {
$start = 0;
$strlen = mb_strlen($string);
while ($strlen) {
$array[] = mb_substr($string,$start,$len,"utf8");
$string = mb_substr($string, $len, $strlen,"utf8");
$strlen = mb_strlen($string);
}
return $array;
}
$str = '1jh2j2h你好记得记得';
$str= mbStrSplit($str, 3);
dump($str);
array(5) {
[0] => string(3) “1jh”
[1] => string(3) “2j2”
[2] => string(7) “h你好”
[3] => string(9) “记得记”
[4] => string(3) “得”
}