0

我想在主页上显示 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

4 回答 4

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 />";
    }
}

抱歉,现在已修复

于 2012-04-08T06:43:01.733 回答
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>";
于 2012-04-08T06:43:06.723 回答
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;

?>
于 2012-04-08T06:44:45.423 回答
0

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

<?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;

?>
于 2013-04-25T22:44:16.467 回答