php || 指定长度分割 中英文符号 字符串

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) “得”
}

Guess you like

Origin blog.csdn.net/weixin_45703155/article/details/115198771