让CodeIgniter的ellipsize()支持中文截断的方法

2015-01-24信息快讯网

CodeIgniter的Text Helper有一个ellipsize()方法,用来过滤HTML标签并且截断文字十分好用。但是它对中文支持的特别不好,在中文中使用就有乱码出现。这篇文章主要介绍了让CodeIgniter的ellipsize()支持中文截断的方法,需要的朋友可以参考下

CodeIgniter的Text Helper有一个ellipsize()方法,用来过滤HTML标签并且截断文字十分好用。但是它对中文支持的特别不好,在中文中使用就有乱码出现。

下面有网友将function ellipsize()进行了修改,使得它支持中文:

在CI 2.1.3版本中,修改ci_2.1.3\system\helpers\text_helper.php 文件

function ellipsize($codepage = 'UTF-8',
                   $str, $max_length, $position = 1, $ellipsis = '…')
{
    // Strip tags
    $str = trim(strip_tags($str));

    // Is the string long enough to ellipsize?
    if (mb_strlen($str, $codepage) <= $max_length)
    {
        return $str;
    }

    $beg = mb_substr($str, 0, floor($max_length * $position), $codepage);

    $position = ($position > 1) ? 1 : $position;

    if ($position === 1)
    {
        $end = mb_substr($str, 0,
            -($max_length - mb_strlen($beg, $codepage)), $codepage);
    }
    else
    {
        $end = mb_substr($str,
            -($max_length - mb_strlen($beg, $codepage)), $max_length, $codepage);
    }

    return $beg.$ellipsis.$end;
}

这段代码主要将substr和strlen替换成了mb_substr和mb_strlen,这样就能很好的支持中文截断了。

php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
php实现singleton()单例模式实例
php使用session二维数组实例
php调用shell的方法
php验证session无效的解决方法
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
CI框架Session.php源码分析
Codeigniter(CI)框架分页函数及相关知识
Laravel 4 初级教程之Pages、表单验证
Laravel 4 初级教程之视图、命名空间、路由
Laravel 4 初级教程之安装及入门
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
php的ZipArchive类用法实例
PHP中使用Session配合Javascript实现文件上传进度条功能
Laravel框架学习笔记(二)项目实战之模型(Models)
php json_encode()函数返回json数据实例代码
Javascript与PHP验证用户输入URL地址是否正确
php中json_encode UTF-8中文乱码的更好解决方法
php实现的zip文件内容比较类
php生成QRcode实例
CodeIgniter框架过滤HTML危险代码
Codeigniter实现多文件上传并创建多个缩略图
让codeigniter与swfupload整合的最佳解决方案
Codeigniter实现处理用户登录验证后的URL跳转
新浪SAE云平台下使用codeigniter的数据库配置
Codeigniter整合Tank Auth权限类库详解
Codeigniter+PHPExcel实现导出数据到Excel文件
Codeigniter生成Excel文档的简单方法
PHP独立Session数据库存储操作类分享
php调用nginx的mod_zip模块打包ZIP文件
CI框架中libraries,helpers,hooks文件夹详细说明
一个严格的PHP Session会话超时时间设置方法
浅谈Eclipse PDT调试PHP程序
IIS6.0 开启Gzip方法及PHP Gzip函数分享
PHP+javascript制作带提示的验证码源码分享
PHP解析html类库simple_html_dom的转码bug
PHP函数strip_tags的一个bug浅析
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
php中session过期时间设置及session回收机制介绍
php加速器eAccelerator的配置参数、API详解
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
©2014-2024 dbsqp.com