Auf Übersichtsseiten finden sich neben Überschrift und eventuellem Bild meist auch ein kurzer Anreißertext. Wenn man den Redakteuren die Arbeit abnehmen möchte, einen eigenen Teaser zu schreiben, könnte man auch einfach eine festgelegte Länge des Textbeitrags verwenden. Mit einer einfachen substr-Funktion käme man dabei auch schnell ans Ziel. Allerdings ist ein Abschneiden mitten im Wort alles andere als schick.
Alternativ kann hier zusätzlich mit einer preg_replace
-Funktion gearbeitet werden. Dabei wird im Beispiel der Textinhalt aus einer Datenbank ausgelesen und ohne html-Tags in die Variable $string
geschrieben. Dieser wird dann auf 250 Zeichen mittels substr()
gekürzt und mithilfe von preg_replace
geprüft, an welcher Stelle das letzte vollständige Wort stand (letztlich wird dies an einem Leerzeichen festgemacht). Nach der Ausgabe erscheinen, wenn der Text aus mehr als 250 Zeichen besteht, drei kleine Punkte. Ansonsten werden diese bei einem sehr kurzen Beitrag nicht angezeigt. Insgesamt sieht das Ganze so aus:
$string = strip_tags($row->text); echo preg_replace("/[^ ]*$/", '', substr($string, 0, 250)); if(strlen($string) > 250) echo "...";