Ich möchte euch jetzt einmal zeigen wie ihr mit nur einer Zeile PHP dafür sorgen könnt das ein mit HTML Formatierter Text sauber von seinen Tags entfernt und gekürzt wird, so das ihr ihn als description Element bei RSS Feeds verwenden könnt.
Wir benötigen dafür 2 Funktionen die uns PHP direkt liefert.
- substr - Gibt einen Teil eines Strings zurück, in unserem Fall die ersten X Zeichen
- strip_tags - Entfernt HTML- und PHP-Tags aus einem String
Das was wir erledigen müssen ist zuerst einmal das Kürzen des Textes und anschließend das Entfernen der Tags. Dabei kann es aber zu Problemen kommen wenn wir genau in einem Tag abschneiden. Dieses würde dann nicht mehr erkannt und hinterher als halbes Tag am Ende des Textes stehen. Um dies vorzubeugen gibt es 2 Möglichkeiten.
1. Zuerst Tags entfernen, dann kürzen
2. Erst großzügig kürzen, dann Tags entfernen und dann noch mal auf Endlänge kürzen
Da ich die Vermutung habe das die strip_tags Funktion bei längeren Text mehr Rechenleistung erfordert als die substr Funktion habe ich mich für die 2. Methode entschieden.
mit diesem Code lasse ich mir zuerst die Zeichen von 0-400 ausgeben, entferne daraus die ganzen HTML-Tags und lasse mir anschließend die Zeichen 0-300 ausgeben
$text = substr($text, 0, 400);
$text = strip_tags($text);
$text = substr($text, 0, 300);
Wir können das Ganze auch als Einzeiler kurzfassen
$text = substr(strip_tags(substr($text, 0, 400)), 0, 300);


