autodesker 发表于 2009-2-19 17:35:47

自家用~中文截取函数~~

放在CodeIgniter\system\application\helpers目录下的~

大部分代码是别人写的~
我加工了一下~

$this->load->helper('text');   
$string = "/1中a文Heres.";
$string = chs_word_limiter($string,5,1);

返回...1中a文H...

第一次做这个~~
有什么不妥的地方希望大家指正
O(∩_∩)O哈哈~

kissmumu 发表于 2009-2-19 19:00:54

沙发
顶了....:)

浪迹天涯 发表于 2009-2-20 11:26:10

感觉还部错

漫无目的 发表于 2009-2-22 16:08:22

不错!收藏了

autodesker 发表于 2009-2-23 12:29:20

遇到HTML的时候就不好用了~:(
嗯嗯~
郁闷ing……

nincyhua 发表于 2009-4-10 16:32:05

不好用。中文应该按照2个字符来处理

yuwen002 发表于 2009-5-8 09:32:59

呵呵。html到不是问题。问题是字符集。gbk,和utf8截取方式不一样吧。
uif8可能是一到三个字符。真不太好解决

uponcn 发表于 2010-3-17 20:27:13

//按字节数截取
function utf8cutlen($s, $l){
    $n = strlen($s);
        if($s == '' || $n <= $l){
          return $s;
        }
        $l--;
        while(strlen($s{$l})){
          $c = ord($s{$l});
                if(!($c&0x80)) return substr($s, 0, $l+1);
                if(($c & 0xC0) == 0xC0) return substr($s, 0, $l);
                $l--;
        }
        return '';
}

//按汉字数截取
function utf8cutnum($s, $l){
    $n = strlen($s);
        $i=$k=0;
        while(strlen($s{$i})){
          $c = ord($s{$i});
                if (!($c & 0x80)) $k+=0.5;
                elseif (($c & 0xC0) == 0xC0) $k++;
                if($k>$l){
                  break;
                }
                $i++;
        }
        return substr($s, 0, $i);
}

iyuki0430 发表于 2010-4-23 23:08:26

楼主的这个helper不错,我正为CI不支持中文截取发愁呢,呵呵

snllll 发表于 2010-7-13 23:55:09

我在郁闷文章内容分页,文章内容中有html代码,字符截取的时候有时候会造成html标签无法闭合,导致版面错乱的问题。哎~~

网上有些方案,但是基本是一个原创,到处抄袭,收效甚微。
页: [1]
查看完整版本: 自家用~中文截取函数~~