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


Posted in PHP onJune 12, 2014

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 相关文章推荐
PHP的FTP学习(一)
Oct 09 PHP
PHP 采集程序中常用的函数
Dec 09 PHP
PHP提取字符串中的图片地址[正则表达式]
Nov 12 PHP
解析PHP 使用curl提交json格式数据
Jun 29 PHP
PHP与javascript实现变量交互的示例代码
Jul 23 PHP
PHP 使用pcntl和libevent 实现Timer功能
Oct 27 PHP
php调用c接口无错版介绍
Mar 11 PHP
php中addslashes函数与sql防注入
Nov 17 PHP
php中删除数组的第一个元素和最后一个元素的函数
Mar 07 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
May 04 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
Aug 02 PHP
PHP 加密 Password Hashing API基础知识点
Mar 02 PHP
Codeigniter实现多文件上传并创建多个缩略图
Jun 12 #PHP
让codeigniter与swfupload整合的最佳解决方案
Jun 12 #PHP
Codeigniter实现处理用户登录验证后的URL跳转
Jun 12 #PHP
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
Jun 12 #PHP
新浪SAE云平台下使用codeigniter的数据库配置
Jun 12 #PHP
Codeigniter整合Tank Auth权限类库详解
Jun 12 #PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
Jun 12 #PHP
You might like
PHP编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
监控 url fragment变化的js代码
2010/04/19 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
js返回前一页刷新本页重载页面
2014/07/29 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
利用Bootstrap实现表格复选框checkbox全选
2016/12/21 Javascript
node中的session的具体使用
2018/09/14 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
2018/09/19 Javascript
JS实现选项卡效果的代码实例
2019/05/20 Javascript
JavaScript实现瀑布流布局的3种方式
2020/12/27 Javascript
python正则表达式re模块详细介绍
2014/05/29 Python
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
python中print的不换行即时输出的快速解决方法
2016/07/20 Python
Python守护线程用法实例
2017/06/23 Python
Python使用Django实现博客系统完整版
2020/09/29 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
python代码实现逻辑回归logistic原理
2019/08/07 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
python入门之基础语法学习笔记
2020/02/08 Python
python中Django文件上传方法详解
2020/08/05 Python
python给list排序的简单方法
2020/12/10 Python
应届毕业生求职信
2014/05/26 职场文书
家长学校培训材料
2014/08/20 职场文书
安全生产月标语
2014/10/07 职场文书
英文商务邀请函范文
2015/01/31 职场文书
龙门石窟导游词
2015/02/02 职场文书
少先队工作总结2015
2015/05/13 职场文书
优质护理服务心得体会
2016/01/22 职场文书
python百行代码实现汉服圈图片爬取
2021/11/23 Python
Python字符串的转义字符
2022/04/07 Python
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server