2

写真を見てください:

ここに画像の説明を入力

これは私のコミュニティ フォーラム ページです。最初の行で #、タイトル、返信、投稿日を使用します。ここで、トピック全体の最初の数行を表示する [説明] という別の列を追加します。たとえば、ここでは 2 番目のタイトルが「Components of Computer」になっていますが、「Components of .......」のように表示したいと思います。あなたは要点を得ましたか?

とにかく、すべてのデータをデータベースに保存します。ここでさらに支援するには、このページの私のコードです。

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

4 に答える 4

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)
于 2012-12-27T04:39:15.890 に答える
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;
}
于 2012-12-27T04:47:57.267 に答える
3

部分文字列を使用

substr($row['description '], 0, $length_you_want);
于 2012-12-27T04:33:07.360 に答える