如何用PHP截断MySQL数据库中的文本? (在字符限制后添加'...')

时间:2012-04-08 06:38:27

标签: php html text truncate

我想在主页上显示2个帖子的片段。这是我的代码:

    function getPostsHome() {
    $query = mysql_query("SELECT * FROM posts LIMIT 0,2") or die(mysql_error());
    while($post = mysql_fetch_assoc($query)) {
        echo "<h3>" . $post['Title'] . "</h3>";
        echo "<p>" . $post['Content'] . "</p><br /><br />";

    }
}

如何将标题截断为25个字符,然后是'...',将内容截断为100个字符,然后'...'?

谢谢。

4 个答案:

答案 0 :(得分:0)

试试这个

function getPostsHome() {
    $query = mysql_query("SELECT * FROM posts LIMIT 0,2") or die(mysql_error());
    while($post = mysql_fetch_assoc($query)) {
      echo "<h3>" . (strlen($post['Title']) > 25 ? substr($post['Title'], 0, 25)."..." : $post['Title']) . "</h3>";
      echo "<p>" . (strlen($post['Content']) > 100 ? substr($post['Content'], 0, 100)."..." : $post['Content']) . "</p><br /><br />";
    }
}
抱歉,现在已经修好了

答案 1 :(得分:0)

使用substr()strlen()函数:

替换:

  echo "<h3>" . $post['Title'] . "</h3>";

使用:

if(strlen($post['Title']) >25)
  echo "<h3>" . substr($post['Title'],0,25)."....</h3>";
else
   echo "<h3>" . $post['Title'] . "</h3>";

答案 2 :(得分:0)

希望这有帮助:D

<?php
    function trunc($str, $len) {
        if (strlen($str) > $len) {
            $str = substr($str, 0, $len) . "...";
        }
        return $str;
    }


    $title = trunc($title, 25);
    $content = trunc($content, 100);

    echo $title;

?>

答案 3 :(得分:0)

其他答案会产生奇怪的结果。考虑一个26个字符的字符串。在其他答案中,此字符串被截断为25个字符+ 3“......”。字符串的26个字符26.这不是你想要的。因此,答案很好:

<?php
    function trunc($str, $len) {
        if (strlen($str) > $len+3) {
            $str = substr($str, 0, $len) . "...";
        }
        return $str;
    }


    $title = trunc($title, 25);
    $content = trunc($content, 100);

    echo $title;

?>