用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5798|回复: 9
收起左侧

[辅助方法 Helper] 自家用~中文截取函数~~

[复制链接]
发表于 2009-2-19 17:35:47 | 显示全部楼层 |阅读模式
放在  CodeIgniter\system\application\helpers  目录下的~
text_helper.zip (1.05 KB, 下载次数: 122)
大部分代码是别人写的~
我加工了一下~

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

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

第一次做这个~~
有什么不妥的地方希望大家指正
O(∩_∩)O哈哈~
发表于 2009-2-19 19:00:54 | 显示全部楼层
沙发
顶了....:)
发表于 2009-2-20 11:26:10 | 显示全部楼层
感觉还部错
发表于 2009-2-22 16:08:22 | 显示全部楼层
不错!收藏了
 楼主| 发表于 2009-2-23 12:29:20 | 显示全部楼层
遇到HTML的时候就不好用了~
嗯嗯~
郁闷ing……
发表于 2009-4-10 16:32:05 | 显示全部楼层
不好用。中文应该按照2个字符来处理
发表于 2009-5-8 09:32:59 | 显示全部楼层
呵呵。html到不是问题。问题是字符集。gbk,和utf8截取方式不一样吧。
uif8可能是一到三个字符。真不太好解决
发表于 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);
}
发表于 2010-4-23 23:08:26 | 显示全部楼层
楼主的这个helper不错,我正为CI不支持中文截取发愁呢,呵呵
发表于 2010-7-13 23:55:09 | 显示全部楼层
我在郁闷文章内容分页,文章内容中有html代码,字符截取的时候有时候会造成html标签无法闭合,导致版面错乱的问题。哎~~

网上有些方案,但是基本是一个原创,到处抄袭,收效甚微。

本版积分规则