Mymbstr

转载 2015年11月21日 10:05:04
<?php 
 function myStrtoArray($str,$charset){
         $charsets["utf-8"] = $charsets["utf8"] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
         $charsets["gb2312"] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
         $charsets["gbk"] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
         $charsets["big5"] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";


         preg_match_all($charsets[$charset], $str, $matches);    #按照指定编码将字符串切分成一个数组


         return $matches[0];
    }


    function myMbStrlen($str, $charset='utf-8'){
        $matches = myStrtoArray($str,$charset);
        return count($matches);
    }


    function myMbSubstr($str,$start,$length,$charset='utf-8'){
         $matches = myStrtoArray($str,$charset);
         $substr = implode("", array_slice($matches[0], $start, $length));    #获取数组的子数组,并将子数组的元素连接起来3
         return $substr;
    }

相关文章推荐

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mymbstr
举报原因:
原因补充:

(最多只允许输入30个字)