Yaslaw.Info > PHP > [PHP] wordcut
Impressum Stopp Acta

[PHP] wordcut


Diese Funktion schneidet im Gegensatz zu wordwrap() nax X Zeichen ab und versucht dabei die Wörter im Satz nicht zu zerstückeln.

Funktion wordCut()

wordCut.php
<?php
/**
* mpl           by ERB software
* @author       stefan.erb(at)erb-software.com
*/


/**
 * Schneidet einen Text nach Anzahl Zeichen ab und erweitert mit einem anderen String
 * @example
 * $text = "Fischer Fritz fischt frische Fische, frische Fische fischt Fischers Fritz";
 * echo wordCut($text, 30, ' ...');
 * Ausgabe: Fischer Fritz fischt frische ...
 *
 * @param String            $text   Der zu kürzende Text
 * @param Number            $maxlen Maximale Länge des textes
 * @param optional String   $suffix Text der am Ende angehängt wird
 * @return String
 */

function wordCut($text, $maxlen = 30, $suffix = ''){
    define('C_DELIMITER', '#wordCut#');
    // Falls der Text selber schon genug kurz ist, diesen unverändert zurückgeben
    if(strlen($text)<$maxlen) return $text;
    // Mittels wordwrap den String unterteilen und danach den ersten Teil davon extrahieren
    $trunc = array_shift(explode(C_DELIMITER, wordwrap($text, $maxlen, C_DELIMITER, true)));
    return trim("{$trunc} {$suffix})";    
}
?>


Anwendungsbeispiel: Weiterlesen-Link

Ein typisches Beispiel. Wir haben in der DB mehrere Texte. In einer Übersicht wollen wir nur den Textanfang und ein Weiterführungslink anzeigen.
//Testdaten. Werden normalerweise aus einer DB geladen
$id = 15;
$text = 'Bei der Explosion einer Bombe in Teheran ist iranischen Medienberichten zufolge Mostafa Ahmadi Roshan – ein im Atombereich tätiger Universitätsprofessor – getötet worden. Zwei weitere Mitfahrer wurden bei dem Anschlag verletzt. ';

//Pattern für den Weiterführenlink
define('C_LINK_PATTERN', "<a href='{$_SERVER['SCRIPT_NAME']}?id=%d'><i>[MEHR...]</i></a>");

//Gekürtzten Text mit Weiterführenlink
echo wordCut($text,  50, sprintf(C_LINK_PATTERN, $id));

Ausgabe:
Bei der Explosion einer Bombe in Teheran ist <a href='/test/test2.php?id=15'><i>[MEHR...]</i></a>



Kategories: [PHP] | [Functions]
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki