让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,这样就能很好的支持中文截断了。

相关文章

  • 分享个简单易懂且非常有用的laravel事件

    分享个简单易懂且非常有用的laravel事件

    这篇文章主要给大家介绍了一个简单易懂并且非常有用的laravel事件,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08
  • php curl请求接口并获取数据的示例代码

    php curl请求接口并获取数据的示例代码

    本篇文章主要介绍了php curl请求接口并获取数据的示例代码,非常具有实用价值,需要的朋友可以参考下
    2017-08-08
  • php实现微信模板消息推送

    php实现微信模板消息推送

    这篇文章主要为大家详细介绍了php实现微信模板消息推送,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • php 算法之实现相对路径的实例

    php 算法之实现相对路径的实例

    这篇文章主要介绍了php 算法之实现相对路径的实例的相关资料,希望通过本文能帮助到大家,让大家实现这样的功能,需要的朋友可以参考下
    2017-10-10
  • php视频拍照上传头像功能实现代码分享

    php视频拍照上传头像功能实现代码分享

    现在手机拍照很火,那么如何使用手机拍照并上传头像呢?原因很简单,就是数据传递,首先手机传递照片信息,既不是post传递也不是get函数传递,这个另外一种数据格式传递,使用的是$GLOBALS ['HTTP_RAW_POST_DATA'],需要的朋友可以参考下
    2015-10-10
  • 浅谈PHP array_search 和 in_array 函数效率问题

    浅谈PHP array_search 和 in_array 函数效率问题

    这篇文章主要介绍了浅谈PHP array_search 和 in_array 函数效率问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • php读取excel文件示例分享(更新修改excel)

    php读取excel文件示例分享(更新修改excel)

    这篇文章主要介绍了php读取excel文件示例,还有更新修改功能,需要的朋友可以参考下
    2014-02-02
  • PHP表单数据写入MySQL金沙国际官网的代码

    PHP表单数据写入MySQL金沙国际官网的代码

    这篇文章主要介绍了PHP表单数据写入MySQL金沙国际官网的相关资料非常不错具有参考借鉴价值,需要的朋友可以参考下
    2016-05-05
  • Apache启动报错No space left on device: AH00023该怎么解决

    Apache启动报错No space left on device: AH00023该怎么解决

    最近有朋友说:Apache启动报错No space left on device: AH00023,是怎么回事,该怎么解决呢?经过小编的一番折腾,问题解决,下面把解决办法分享给大家,需要的朋友可以参考下
    2015-10-10
  • thinkPHP框架自动填充原理与用法分析

    thinkPHP框架自动填充原理与用法分析

    这篇文章主要介绍了thinkPHP框架自动填充,结合实例形式较为详细的分析了thinkPHP框架自动填充的原理、使用方法及相关操作注意事项,需要的朋友可以参考下
    2018-04-04

最新评论