PHP按字符串长度分割成数组,支持中文

支持中文字符串,值得分享学习


/**
 * 将unicode字符串按传入长度分割成数组
 * @param  string  $str 传入字符串
 * @param  integer $l   字符串长度
 * @return mixed      数组或false
 */
 function str_split_unicode($str, $l = 0) {
    if ($l > 0) {
        $ret = array();
        $len = mb_strlen($str, "UTF-8");
        for ($i = 0; $i < $len; $i += $l) {
            $ret[] = mb_substr($str, $i, $l, "UTF-8");
        }
        return $ret;
    }
    return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
 }

 


<?php
 function str_split_unicode($str, $l = 0) {
     if ($l > 0) {
         $ret = array();
         $len = mb_strlen($str, "UTF-8");
         for ($i = 0; $i < $len; $i += $l) {
             $ret[] = mb_substr($str, $i, $l, "UTF-8");
         }
         return $ret;
     }
     return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
 }
 ?>
 $s = "还未如愿sss见gfg者不rtret不朽"; // Mild milk
 print_r(str_split($s, 5));
 print_r(str_split_unicode($s, 5));

 //输出
 //Array ( [0] => 还�� [1] => �如� [2] => ��sss [3] => 见gf [4] => g者� [5] => ��rtr [6] => et不 [7] => 朽 )
 //Array ( [0] => 还未如愿s [1] => ss见gf [2] => g者不rt [3] => ret不朽 )