Text mit PHP am Wortende kürzen – nicht mittendrin

Ab und zu muss man einen Text mit PHP kürzen. Sei es weil man einen Vorschautext in der Kategorie benötigt oder weil man die ersten 160 Zeichen des Textes für die meta="description" ausgeben möchte.

Nun kann man den Text mit substr() kürzen, dahinter drei Punkte setzen und man hätte sein Ziel erreicht. Leider beachtet substr() keine Wörter und schneidet gnadenlos mittendrin ab, was in etwas so aussehen könnte:

Es war einmal in einem fer …

Nicht unbedingt die eleganteste Lösung um Texte mit PHP richtig zu kürzen. Zudem sieht sie auch noch bescheiden aus. Die folgende Zeile schneidet nur nach ganzen Wörtern ab und nicht mittendrin.

$string		=	'Es war einmal in einem fernen Land.'; // Text
$length		=	25; // Zeichenlänge

$string		=	preg_replace( '/[^ ]*$/', '', substr( $string, 0, $length ) ) . ' ...';

Die Ausgabe sollte dann wie folgt aussehen:

Es war einmal in einem fernen …

oliver Ich heisse Oli und komme aus dem wuseligen Berlin. Meine Leidenschaft für Webseiten hält seit mehr 10 Jahren an. Dabei ist es egal ob ich kleinere oder größere Projekte umsetze - ich hänge mich in jedes Projekt mit voller Leidenschaft rein und versuche mich dabei immer wieder neu zu entdecken und neue Ideen umzusetzen.

Hinterlasse ein Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.