你可以先判断你的标题可显示多少字符(一个汉字算2个字符)
然后用函数判断超过的字符就用........代替,
你可以访问www.ahut.edu.cn的新闻就是这么做的!

解决方案 »

  1.   

    我想可能是截断了半个中文字符吧?!mub_substr行吗?我没试过。
      

  2.   

    楼上的想法是对,但实施起来可能有问题,因为你跟本无法预测在你选取的字符中是有多少个英文字符?
    以下是我个人写的一段程序,可以显示正常,但觉得有点浪费资源,不知有没有更好的方法?function my_sub($thetitle) {
             if(strlen($thetitle)<=18) {
         return $thetitle;
    else {
      $en=0;
      for($i=0;$i<=16;$i++) {
    if(Ord(substr($thetitle,$i,1))<128) $en++;
      }
      if($en%2==0) {
    return substr($thetitle,0,16)."...";
      }
      else {
    return substr($thetitle,0,17)."...";
      }
    }
    }可以修改数字来达到个人的目的,但是,注意奇偶!
      

  3.   

    to: csdnfan你说的这个函数我在书上怎么没查到??
    用后显示
    Fatal error: Call to undefined function: mb_substr() in funcs.php on line 29:(  怎么回事??
      

  4.   

    mb_substr() php版本需要>= 4.06