修改Smarty\libs\plugins\modifier.truncate.php文件为

function smarty_modifier_truncate($string, $length = 80, $etc = ‘…’,$break_words = false)
{
    if ($length == 0)
        return ”;
    if (strlen($string) > $length)
        {
        $length -= strlen($etc);  
        if (!$break_words)
        $string = preg_replace(‘/s+?(S+)?$/’, ”, SubstrGB($string, 0, $length+1));
     
        return SubstrGB($string, 0, $length).$etc;
    } else
        return $string;
}
function SubstrGB($str,$start,$len)
{//$str:字符串,$start:开始的位置,$len :截取长度
        if( strlen($str) > $len)
        {
                $strlen=$strart+$len;
                for($i=0;$i<$strlen;$i++)
                {
                        if(ord(substr($str,$i,1))>0xa0)
                        {
                                if ($i<$strlen-1)
        {
         $tmpstr.=substr($str,$i,2);
         $i++;
        }
        else
        {
         $i++;
        }
                        }
                        else
                        {
                                $tmpstr.=substr($str,$i,1);
                        }
                }
                return $tmpstr;
        }
        else
        {
                return $str;
        }
}

Published in PHP

No Responses to “Smarty模板截取中文字符串出现乱码”

Leave a Reply

请输入算式结果(看不清请点击图片)
(必须)