让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中Session的概念
Oct 09 PHP
PHP 函数执行效率的小比较
Oct 17 PHP
JS 网站性能优化笔记
May 24 PHP
强烈声明: 不要使用(include/require)_once
Jun 06 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
Oct 22 PHP
php使用正则过滤js脚本代码实例
May 10 PHP
destoon实现商铺管理主页设置增加新菜单的方法
Jun 26 PHP
深入理解php printf() 输出格式化的字符串
May 23 PHP
thinkphp实现分页显示功能
Dec 03 PHP
PHP yield关键字功能与用法分析
Jan 03 PHP
TP5框架实现的数据库备份功能示例
Apr 05 PHP
解决PhpStorm64不能启动的问题
Jun 20 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模板技术[转]
2007/01/04 PHP
php 运行效率总结(提示程序速度)
2009/11/26 PHP
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
2010/04/15 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
基于JQuery的cookie插件
2010/04/07 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
通过js简单实现将一个文本内容转译成加密文本
2013/10/22 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
AngularJS 自定义过滤器详解及实例代码
2016/09/14 Javascript
javascript基础知识讲解
2017/01/11 Javascript
jQuery Masonry瀑布流插件使用方法详解
2017/01/18 Javascript
js实现自定义路由
2017/02/04 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
node.js基础知识小结
2018/02/26 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
JS数组转字符串实现方法解析
2020/09/04 Javascript
JavaScript实现音乐导航效果
2020/11/19 Javascript
python的类变量和成员变量用法实例教程
2014/08/25 Python
python跳过第一行快速读取文件内容的实例
2018/07/12 Python
python实现归并排序算法
2018/11/22 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
使用python实现CGI环境搭建过程解析
2020/04/28 Python
CSS3字体效果的设置方法小结
2016/06/13 HTML / CSS
美国领先的低折扣旅行网站:Hotwire
2019/01/19 全球购物
介绍一下JNDI的基本概念
2013/07/26 面试题
八年级音乐教学反思
2014/01/09 职场文书
新领导上任欢迎词
2014/01/13 职场文书
如何编写优秀的食品项目创业计划书
2014/01/23 职场文书
大学新生军训感言
2014/02/25 职场文书
幼儿评语大全
2014/04/30 职场文书
大型演出策划方案
2014/05/28 职场文书
社团活动总结格式
2014/08/29 职场文书
彻底理解golang中什么是nil
2021/04/29 Golang
教你怎么用Python操作MySql数据库
2021/05/31 Python
CDPR谈《巫师》新作用虚幻5原因 称不会为Epic独占
2022/04/06 其他游戏