让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 相关文章推荐
建立动态的WML站点(二)
Oct 09 PHP
PHP4实际应用经验篇(3)
Oct 09 PHP
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 PHP
php动态生成JavaScript代码
Mar 09 PHP
PHP 基于文件头的文件类型验证类函数
May 01 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
Feb 14 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
Apr 24 PHP
php格式化日期实例分析
Nov 12 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
Jul 18 PHP
如何使用PHP给图片加水印
Oct 12 PHP
laravel批量生成假数据的方法
Oct 09 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
Apr 13 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
使用 php4 加速 web 传输
2006/10/09 PHP
Adnroid 微信内置浏览器清除缓存
2016/07/11 PHP
Nigma vs Liquid BO3 第一场2.14
2021/03/10 DOTA
jscript之List Excel Color Values
2007/06/13 Javascript
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
JQuery通过Ajax提交表单并返回结果
2011/07/31 Javascript
JavaScript简单实现网页回到顶部功能
2013/11/12 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
JS和函数式语言的三特性
2014/03/05 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
ES6新特性七:数组的扩充详解
2017/04/21 Javascript
layui导航栏实现代码
2017/05/19 Javascript
详解Node.js模板引擎Jade入门
2018/01/19 Javascript
垃圾回收器的相关知识点总结
2018/05/13 Javascript
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
浅谈vue中使用编辑器vue-quill-editor踩过的坑
2020/08/03 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
python挖矿算力测试程序详解
2019/07/03 Python
关于Python 的简单栅格图像边界提取方法
2019/07/05 Python
余弦相似性计算及python代码实现过程解析
2019/09/18 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
如何基于python把文字图片写入word文档
2020/07/31 Python
微信html5页面调用第三方位置导航的示例
2018/03/14 HTML / CSS
“型”走纽约上东区:Sam Edelman
2017/04/02 全球购物
幼儿师范毕业生自荐信
2013/11/09 职场文书
计算机专业推荐信范文
2013/11/27 职场文书
房地产财务管理制度
2014/02/02 职场文书
英文自荐信常用句子
2014/03/26 职场文书
导师工作推荐信
2015/03/27 职场文书
python对文档中元素删除,替换操作
2022/04/02 Python
pt-archiver 主键自增
2022/04/26 MySQL