让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 相关文章推荐
使用数据库保存session的方法
Oct 09 PHP
配置支持SSI
Nov 25 PHP
MayFish PHP的MVC架构的开发框架
Aug 13 PHP
PHP运行时强制显示出错信息的代码
Apr 20 PHP
PHP魔术方法__GET、__SET使用实例
Nov 25 PHP
PHP输出一个等腰三角形的方法
May 12 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
Oct 09 PHP
yii2.0实现验证用户名与邮箱功能
Dec 22 PHP
微信支付开发维权通知实例
Jul 12 PHP
CI(CodeIgniter)框架实现图片上传的方法
Mar 24 PHP
PHP实现的简单组词算法示例
Apr 10 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
Aug 15 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
很实用的一个完整email发送程序
2006/10/09 PHP
simplehtmldom Doc api帮助文档
2012/03/26 PHP
PHP中SESSION使用中的一点经验总结
2012/03/30 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
2013/12/02 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
javascript 面向对象,实现namespace,class,继承,重载
2009/10/29 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
2016/06/28 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
angularjs中ng-attr的用法详解
2016/12/31 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
JavaScript页面倒计时功能完整示例
2019/05/15 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
详解Webpack4多页应用打包方案
2020/07/16 Javascript
VUE+Element实现增删改查的示例源码
2020/11/23 Vue.js
[02:42]完美大师赛主赛事淘汰赛第三日观众采访
2017/11/25 DOTA
python实现bucket排序算法实例分析
2015/05/04 Python
Django中的ajax请求
2018/10/19 Python
在unittest中使用 logging 模块记录测试数据的方法
2018/11/30 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
Boda Skins皮衣官网:奢侈皮夹克,全球配送
2016/12/15 全球购物
台湾线上百货零售购物平台:friDay购物
2017/08/18 全球购物
手工制作的意大利太阳镜和光学元件:Illesteva
2019/01/19 全球购物
ESDlife健康生活易:身体检查预订、搜寻及比较
2019/05/10 全球购物
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
Ajxa常见问题都有哪些
2014/03/26 面试题
一年级数学教学反思
2014/02/01 职场文书
党的群众路线教育实践活动学习笔记范文
2014/11/06 职场文书
抄袭同学作业检讨书1000字
2014/11/20 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
经典爱情感言
2015/08/03 职场文书