关于douphp截取字符串问题的解决方案!

douphp默认截取字符串是按照字节来截取的,我们可以通过修改下面的文件来实现按照中文字符来截取字符串。

\include\smarty\plugins\modifier.truncate.php


/*
	解决中文截取问题 OURPHP.NET
*/
function smarty_modifier_truncate($string, $length = 80, $etc = '...', $encoding='UTF-8',$break_words = false, $middle = false)
{
    if ($length == 0)
        return '';

    if (mb_strlen($string, $encoding) > $length){
        $length -= min($length, mb_strlen($etc));
        if (!$break_words && !$middle) {
            $string = mb_ereg_replace('/\s+?(\S+)?$/', '', mb_substr($string, 0, $length+1));
        }
        if(!$middle) {
            return mb_substr($string, 0, $length) . $etc;
        } else {
            return mb_substr($string, 0, $length/2) . $etc . mb_substr($string, -$length/2);
        }
    } else {
        return $string;
    }
}

本文 暂无 评论

Top
在线咨询 ×

站长QQ:366131726

扫描添加客服微信

工作时间:早8:00 - 晚11:00