echo substr("如何让长题目只出现前20个字,剩下的用……代替",0,20).chr(0)."...";

解决方案 »

  1.   

    chr(0)是什么意思?不懂,谢谢请说明一下
      

  2.   

    可以用下面的方法试试
    <a href="#" alt="<?echo $row[title] ;?>">
    <?if (strlen($row[title])>20)
    {
    print(substr($row[title],0,20));
    echo "...";
    }
    else
    print $row[1];
    ?>
    </a>
      

  3.   

    从朋友那得来的:php联盟
    //------------------------------------------------ 
    // 取中文的substr() 
    //------------------------------------------------ 
    function csubstr($str,$start,$len) 

    $strlen=strlen($str); 
    $clen=0; 
    for($i=0;$i<$strlen;$i++,$clen++) 

    if ($clen>=$start+$len) 
    break; 
    if(ord(substr($str,$i,1))>0xa0) 

    if ($clen>=$start) 
    $tmpstr.=substr($str,$i,2); 
    $i++; 

    else 

    if ($clen>=$start) 
    $tmpstr.=substr($str,$i,1); 

    } return $tmpstr; 

    //------------------------------------------------ 
    // 返回指定长度的字符串,超过部分加... 
    //------------------------------------------------ 
    function showShort($str,$len) 

    $tempstr = csubstr($str,0,$len); 
    if ($str<>$tempstr) 
    $tempstr .= "..."; return $tempstr; 
    }
    xuzuning(唠叨)和这个我都试过了,都可以,就都贴出来了,大家共享!
    谢谢各位!
      

  4.   

    xuzuning(唠叨)是截取
    echo substr("如何让长题目只出现前10个字,剩下的用……代替",0,20).chr(0)."...";
    汉字是两个字节的,是这样的。
    结果为:如何让长题目只出现前...
      

  5.   

    chr(0)返回空字符,用以填补截取到半个汉字时的空缺,不补齐双字节占位将可能出现乱字符。
      

  6.   

    <?php if (strlen($myrow[1])>42) {echo substr($myrow[1],0,42).'...';} 
                else {echo $myrow[1];}?>
    有汉字时最好用双数。