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

 更新时间:2014年06月12日 17:12:37   投稿:shichen2014  
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+iframe图片上传实现即时刷新效果

    PHP+iframe图片上传实现即时刷新效果

    下面小编就为大家带来一篇PHP+iframe图片上传实现即时刷新效果。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • php基础教程

    php基础教程

    PHP是全球范围内应用广泛的开发语言,Web开发的最佳语言; PHP和Linux,Apache,MySQL紧密结合,形成LAMP的开源黄金组合,本文给大家php基础教程,php基础,需要的朋友可以参考下
    2015-08-08
  • 使用YII2框架实现微信公众号中表单提交功能

    使用YII2框架实现微信公众号中表单提交功能

    刚刚接触微信就要做一个表单提交功能,需求是这样的只能在数据库中存在的手机号看到表单。下面通过本文给大家分享使用YII2框架实现微信公众号中表单提交功能,感兴趣的朋友一起看看吧
    2017-09-09
  • Thinkphp 框架扩展之Widget扩展实现方法分析

    Thinkphp 框架扩展之Widget扩展实现方法分析

    这篇文章主要介绍了Thinkphp 框架扩展之Widget扩展实现方法,结合实例形式分析了Thinkphp 框架Widget扩展概念、原理、实现方法及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • PHP中类静态调用和范围解析操作符的区别解析

    PHP中类静态调用和范围解析操作符的区别解析

    这篇文章主要介绍了PHP中类静态调用和范围解析操作符的区别,需要的朋友可以参考下
    2018-01-01
  • 深入剖析浏览器退出之后php还会继续执行么

    深入剖析浏览器退出之后php还会继续执行么

    览器退出之后php还会继续执行么?下面小编就为大家介绍一下究竟览器退出之后php还会不会继续执行。一起跟随小编过来看看吧
    2016-05-05
  • thinkPHP简单实现多个子查询语句的方法

    thinkPHP简单实现多个子查询语句的方法

    这篇文章主要介绍了thinkPHP简单实现多个子查询语句的方法,结合实例形式对比分析了thinkPHP中子查询语句的具体实现技巧,需要的朋友可以参考下
    2016-12-12
  • PHP实现单例模式最安全的做法

    PHP实现单例模式最安全的做法

    这篇文章主要介绍了PHP实现单例模式最安全的做法,适用PHP5.3以上版本,采用了最好的做法,需要的朋友可以参考下
    2014-06-06
  • PHP中的traits简单使用实例

    PHP中的traits简单使用实例

    这篇文章主要介绍了PHP中的traits简单使用实例,本文着重讲解traits的语法、traits有什么作用、什么情况下使用traits,需要的朋友可以参考下
    2015-05-05
  • 基于Snoopy的PHP近似完美获取网站编码的代码

    基于Snoopy的PHP近似完美获取网站编码的代码

    基于Snoopy的PHP近似完美获取网站编码 用于php爬虫,获取编码准确率99.9%, 还有部分不能获取,求大牛完善
    2011-10-10

最新评论