如何在某个页面上显示整个博客文章中的几行?

时间:2011-09-18 17:29:08

标签: php mysql

我正在创建一个博客,其中我只想显示主页上所有帖子的摘要,而不是整个帖子。 以下是我用来获取主页上帖子的功能。

function get_content($id = '')
{
    if ($id != ""):

        $id = mysql_real_escape_string($id);
        $sql = "SELECT * from cms_content WHERE id = '$id'";
        $return = '<p><a href="http://localhost/www/">Go back to Home page</a></p>';
        echo $return;
    else:

        $sql = "select * from cms_content ORDER BY id DESC";
    endif;

    $res = mysql_query($sql) or die(mysql_error());
    if (mysql_num_rows($res) != 0):

        while ($row = mysql_fetch_assoc($res)) {
            echo '<h1><a href="index.php?id=' . $row['id'] . '">' . $row['title'] . '</a></h1>';
            echo '<p>' . "by: " . $row['author'] . ", posted on: " . $row['date'] . '<p>';
            echo '<p>' . $row['body'] . '</p><br />';
        }
    else:
        echo '<p>We are really very sorry, this page does not exist!</p>';
    endif;
}

然后我只使用这个PHP代码来获取帖子:

<?php

if (isset($_GET['id'])) :
    $obj->get_content($_GET['id']);
else :
    $obj->get_content();
endif;
?>

那么如何使用php函数或mysql获取摘要,因为我知道我们可以使用mysql查询来限制单词?

2 个答案:

答案 0 :(得分:2)

function sumarize($your_string, $limit_lines){
   $count = 0;
   foreach(explode("\n", $your_string) as $line){
       $count++;
       echo $line."\n";
       if ($count == $limit_lines) break;        
   }
} 
sumarize($row['body'], 10);

将显示前十行

答案 1 :(得分:1)

1衬里:

echo '<p>'.implode("\n",array_slice(explode("\n",$row['body']),0,10)).'</p>';

而不是与$row['body']

一致