首先你要知到该行有多长哦,
比如长是$length=20;
if(strlen($string)>20){
$tmpstr=substr($string,0,17);
echo $tmpstr."...";
}else{
echo $string;
}

解决方案 »

  1.   

    function cnsubstr($str,$len)
    {
      if(strlen($str)>$len)
      {
        $temp=0;
        for($i=0;$i<$len;$i++)
        {
          if(ord($str[$i])>0xa0) $temp++;
        }
        if($temp%2==0) $str=substr($str,0,$len)."...";
        else $str=substr($str,0,$len+1)."...";
      }
      return $str;
    }
      

  2.   

    <?php
    $str="aasdf";
    $str_len=11;//你规定字符的长度.
    $len=strlen($str);
    $str1=substr($str,0,$str_len);
     ord(substr($str1,-1));if(ord(substr($str1,-1,1))>=156)
    {
    $str1=substr($str,0,12);
    }
    if($len>$str_len) {
    $str1.="...";
    }
    print $str1;
    ?>

    这段代码可以解决你说的问题.如果里面有文字也不会出现乱码.如你取单数.不成熟看看吧.