2012-04-08 15 views
0

我想在主頁上顯示2個帖子的片段。下面是我的代碼有:如何用PHP截斷MySQL數據庫中的文本? (在字符限制後添加'...')

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個字符,然後’...」?

謝謝。

+1

你不需要PHP這一點,閱讀更多的** **的CSS:'文本溢出:省略號;' – Michelle 2012-04-08 06:48:04

回答

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

感謝這個工作,除了第二個標題不顯示在所有? – 2012-04-08 06:49:13

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

?> 
0

其他的答案會產生奇怪的結果。考慮一個26個字符的字符串。在其他答案中,這個字符串被截斷爲25個字符+3「...」。 28個字符爲一個字符串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; 

?>