如何显示大段的前几行?

时间:2012-12-27 04:30:25

标签: php mysql while-loop echo

请看图片:

enter image description here

这是我的社区论坛页面。我在第一行使用#,Title,Replies&发布日期。现在我想添加另一个名为Description的列,它将显示整个主题的前几行。例如,这里的第二个标题是"计算机的组件",但我希望将它显示为"组件......."。你明白了吗?

无论如何,我将所有数据存储在数据库中。这里有更多的帮助是我的本页代码。

echo "<table border='0' width='100%' id='table-3'>
<tr><td>#</td><td>Title</td><td>Replies</td><td>Post Date</td></tr>";
$sql = mysql_query("SELECT * FROM topics ORDER BY id DESC");
while ($row = mysql_fetch_array($sql)) {
    $replies = mysql_num_rows(mysql_query("SELECT * FROM replies WHERE
               topic_id='" . $row['id'] . "'"));
    echo "<tr><td>" . $row['id'] . "</td><td><a href='show_topic.php?id=" . $row['id']                                                                                          
          . "'> <b>" . $row['title'] . "</b></a></td><td>" . $replies . "</td><td>" .  
          date("d M Y", $row['date']) . "  </td></tr>";
}

4 个答案:

答案 0 :(得分:4)

如果您要查找完整单词,这是一个简单的函数,如果内容长于指定的单词数,则会显示“...”:

function excerpt($content,$numberOfWords = 10){     
    $contentWords = substr_count($content," ") + 1;
    $words = explode(" ",$content,($numberOfWords+1));
    if( $contentWords > $numberOfWords ){
        $words[count($words) - 1] = '...';
    }
    $excerpt = join(" ",$words);
    return $excerpt;
}

然后你只需要使用:

来调用函数
excerpt($row['description'],10)

答案 1 :(得分:4)

如果有空格,此函数将修剪文本而不剪切任何单词。否则它会在长度限制后立即将其切断。

function trim_text($input, $length, $ellipses = true)
{
    if (strlen($input) <= $length) {
        return $input;
    }

    // find last space within length
    $last_space = strrpos(substr($input, 0, $length), ' ');
    if ($last_space === FALSE) {
        $last_space = $length;
    }

    $trimmed_text = substr($input, 0, $last_space);

    // add ellipses
    if ($ellipses) {
        $trimmed_text .= '...';
    }

    return $trimmed_text;
}

答案 2 :(得分:3)

使用substr

substr($row['description '], 0, $length_you_want);

答案 3 :(得分:0)

尝试这样的事情:

<?php 
    $news = strip_tags($row['apal_news']);
    $snews = substr($news,0,50);
    echo $news;
?>