2012-04-08 3 views
0

Ich möchte Ausschnitte von 2 Pfosten auf der homepage zeigen. Hier ist der Code, ich habe:Wie man Text von der MySQL Datenbank mit PHP abschneidet? (Fügen Sie '...' nach Zeichen ein, die begrenzt sind)

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

    } 
} 

Wie kann ich den Titel auf 25 Zeichen abgeschnitten, dann ‚...‚ und der Inhalt zu 100 Zeichen, dann‘...‘?

Vielen Dank.

+1

Sie nicht brauchen, PHP für diese, lesen Sie mehr über ** CSS **: 'Text-Überlauf: Auslassungs;' – Michelle

Antwort

0

versuchen mit diesem

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

sorry, jetzt ist es fixiert

+1

Dank dieser arbeitete, abgesehen von dem zweiten Titel nicht angezeigt überhaupt? –

0

Verwendung substr() und strlen() Funktionen:

ersetzen:

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

mit:

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

Hope this help: 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

Die anderen Antworten seltsame Ergebnisse produzieren kann. Betrachten Sie eine Folge von 26 Zeichen. In den anderen Antworten wird diese Zeichenfolge auf 25 Zeichen + 3 "..." gekürzt. 28 Zeichen für eine Zeichenfolge 26. Das ist nicht was du willst. Die gute Antwort lautet daher:

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

?> 
Verwandte Themen