内容显示:【产品说明】
1. 护肝宝由韩国天然珍贵枳椇子树果提取制成,枳椇子用于解酒护肝在韩国古代已广泛应用,其使用安全,疗效显著.而位于韩国黄海道及江原的枳椇树成份与功效最好,作为解酒护肝神药记载于药用古典.近代由韩国罗天秀教授经多年研究试验,采用高分子及低分子的分离方法,从中分离出对肝功能有强效的分子量为11万4500的高分子多糖HD-1,制成功效突出的韩国最畅销高科
只想截取红色部分.使用 <div id="SmallTxt2">{$list.pro_conect|truncate:10:""}</div>  不行?

解决方案 »

  1.   

    网上找找,有扩展smarty 截取中文字符的东西
      

  2.   


    //把 这个文件保存到smarty 下的plugins下,文件名:modifier.cn_truncate.php
    <?php
    /**
     * Smarty plugin
     * @package Smarty
     * @subpackage plugins
     */
    /**
     * Smarty truncate modifier plugin
     *
     * Type:     modifier<br>
     * Name:     truncate<br>
     * Purpose:  Truncate a string to a certain length if necessary,
     *           optionally splitting in the middle of a word, and
     *           appending the $etc string or inserting $etc into the middle.
     * @link http://smarty.php.net/manual/en/language.modifier.truncate.php
     *          truncate (Smarty online manual)
     * @author   Monte Ohrt <monte at ohrt dot com>
     * @param string
     * @param integer
     * @param string
     * @param boolean
     * @param boolean
     * @return string
     */
    function smarty_modifier_cn_truncate($string, $strlen = 20, $etc = '...',
                                  $keep_first_style = false)
    {
    $strlen = $strlen*2;
    $string = trim($string);
    if ( strlen($string) <= $strlen ) {
    return $string;
    }
    $str = strip_tags($string);
    $j = 0;
    for($i=0;$i<$strlen;$i++) {
       if(ord(substr($str,$i,1))>0xa0) $j++; 
    }
    if($j%2!=0) $strlen++; 
    $rstr=substr($str,0,$strlen);
    if (strlen($str)>$strlen   ) {$rstr .= $etc;} if ( $keep_first_style == true && ereg('^<(.*)>$',$string) ) {
    if ( strlen($str) <= $strlen ) {
    return $string;
    }
    $start_pos = strpos($string,substr($str,0,4));
    $end_pos = strpos($string,substr($str,-4));
    $end_pos = $end_pos+4;
    $rstr = substr($string,0,$start_pos) . $rstr . substr($string,$end_pos,strlen($string));
    }return $rstr; }
    /* vim: set expandtab: */?>
      

  3.   

    从字符串开始处截取某长度的字符.默认是80个.
    你也可以指定第二个参数作为追加在截取字符串后面的文本字串.该追加字串被计算在截取长度中。
    默认情况下,smarty会截取到一个词的末尾。
    如果你想要精确的截取多少个字符,把第三个参数改为"true" 
    index.php:$smarty = new Smarty;
    $smarty->assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.');
    $smarty->display('index.tpl');index.tpl:{$articleTitle}
    {$articleTitle|truncate}
    {$articleTitle|truncate:30}
    {$articleTitle|truncate:30:""}
    {$articleTitle|truncate:30:"---"}
    {$articleTitle|truncate:30:"":true}
    {$articleTitle|truncate:30:"...":true}OUTPUT:Two Sisters Reunite after Eighteen Years at Checkout Counter.
    Two Sisters Reunite after Eighteen Years at Checkout Counter.
    Two Sisters Reunite after...
    Two Sisters Reunite after
    Two Sisters Reunite after---
    Two Sisters Reunite after Eigh
    Two Sisters Reunite after E...