+ -
当前位置:首页 → 问答吧 → DZ截取字符方法

DZ截取字符方法

时间:2009-07-18

来源:互联网

[php]
function cutstr($string, $length, $dot = ' ...') {

        global $charset;



        if(strlen($string) <= $length) {

                return $string;
                }
        $string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string);



        $strcut = '';

        if(strtolower($charset) == 'utf-8') {



                $n = $tn = $noc = 0;

                while($n < strlen($string)) {



                        $t = ord($string[$n]);

                        if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {

                                $tn = 1; $n++; $noc++;

                        } elseif(194 <= $t && $t <= 223) {

                                $tn = 2; $n += 2; $noc += 2;

                        } elseif(224 <= $t && $t <= 239) {

                                $tn = 3; $n += 3; $noc += 2;

                        } elseif(240 <= $t && $t <= 247) {

                                $tn = 4; $n += 4; $noc += 2;

                        } elseif(248 <= $t && $t <= 251) {

                                $tn = 5; $n += 5; $noc += 2;

                        } elseif($t == 252 || $t == 253) {

                                $tn = 6; $n += 6; $noc += 2;

                        } else {

                                $n++;

                        }



                        if($noc >= $length) {

                                break;

                        }



                }

                if($noc > $length) {

                        $n -= $tn;

                }



                $strcut = substr($string, 0, $n);



        } else {

                for($i = 0; $i < $length; $i++) {

                        $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];

                }

        }



        $strcut = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $strcut);



        return $strcut.$dot;
[/php]

作者: 张松   发布时间: 2009-07-18

hao

作者: wdxt206   发布时间: 2009-07-28

热门下载

更多