php将长字符串拆分为指定最大宽度的字符串数组

    /** 
     * 将字符串拆分为指定最大宽度的字符串数组。单字节字符宽度为1,多字节字符通常宽度为2
     * @param string $msg 要拆分的字符串
     * @param int $width 结果数组中每个元素的最大宽度。如10代表10个英文字母或者5个汉字
     * @param string $enc 字符串编码
     */
    function split_str2array_cn($msg,$width,$enc = 'utf-8'){
        $msg_width = mb_strwidth($msg,$enc);
        if($msg_width <= $width) return array($msg);
            
        $return = array();
        $msg_len = mb_strlen($msg,$enc);
        for($i = 0;$i<$msg_len;$i++){
            $temp_str .= mb_substr($msg,$i,1,$enc);
            if(mb_strwidth($temp_str,$enc) >= $width){ 
                array_push($return,$temp_str);
                $temp_str = '';
            }   
        }           
        if($temp_str != '') array_push($return,$temp_str);
        return $return;
    }               

 

posted @ 2014-05-28 18:37  soj  阅读(366)  评论(0编辑  收藏  举报