按字节截取文本,中英文混合不乱码

jerry thinkphp 2015年11月19日 收藏
保持最大长度,且文字完整
只支持GBK,UTF8的先转GBK再执行

function gbk_left($str,$len){
        if(strlen($str)<=$len) return $str;
        $txt='';
        for($i=0;$i<$len;$i++){
            if(ord($str{$i})>0x80){
                if($i+1==$len) return $txt;
                $txt.=$str{$i}.$str{$i+1};
                $i++;
                continue;
            }
            $txt.=$str{$i};
        }
        return $txt;
    }