PHP: String auf die ersten Worte kürzen

Eine kleine Funktion, von der ich die ersten Worte eines Strings zurück bekomme, um z.B. in einem Vorschaublock den ersten Absatz eines Artikels anzureißen.

Die Idee, ich habe sie mir bei Thomas Funktion end_on_word() abgeschaut, ist so simpel wie effektiv: Der String wird an den Leerzeichen in ein Array aufgespalten und mit diesem kann man dann arbeiten:

/** 
 * reduziert einen String auf die 
 * ersten Worte
 *
 * @param str $str
 * @param int $count (Default 10)
 * @return str
 */
function getFirstWords( $str, $count = 10 ) {
    
 	$str = trim( $str );

 	# Jedes Wort ein Arrayelement
 	$array = explode( ' ', $str );
  
 	# Array in $count große Teile teilen
 	$array = array_chunk( $array, $count );

 	/**
 	 * Falls der String weniger Worte hatte als $count
 	 * geben wir den String unverändert zurück
 	 */
 	if ( empty( $array[ 1 ] ) ) 
 	 	return $str;

 	/**
 	 * andernfalls entfernen wir eventuelle Kommas am ende
 	 * und fügen ein Auslassungszeichen an
 	 */
  	 return rtrim( implode( ' ', $array[ 0 ] ), ',;' ) . '[…]' ;
}

/** 
 * Anwendung
 */
$str = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam.";

# Die ersten 5 Wörter bitte:
echo getFirstWords( $str, 5 );

/**
 * Ausgabe: Lorem ipsum dolor sit amet […]
 */

Kommentare

  1. 01) 30.11.2010
    rompers

    super sache
    hat gleich auf anhieb geklappt

    thx lg rompers

Fragen, Ideen oder Kritik? – Hier ist Platz dafür!

Dein Kommentar

Um ein Kommentar abzugeben, reicht der Text im Kommentarfeld. Die Angabe eines Namens wäre nett, ist aber nicht erforderlich.

Du darfst folgenden HTML-Code verwenden, musst aber nicht:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>