am: 25. Februar 2015, 10:17:14
Da ich die Frage schon das ein oder andere mal gelesen habe und die vorgeschlagenen Lösungen nur Krücken waren:
Die Variable
$data['text'] enthält bei mir den Langtext. (HTML formatiert, Länge egal)
Die Variable
$data['shorttext'] wird folgendermaßen gefüllt:
1) Ersetzen von geschützten Leerzeichen durch normale Leerzeichen
2) Ersetzen von Absatzenden oder Zeilenumbrüchen durch Leerzeichen
3) Ersetzen von aufeinander folgenden Leerzeichen durch einzelne Leerzeichen
4) Entfernen der restlichen HTML Tags
5) Abschneiden auf 450 Zeichen Länge
6) Das letzte Wort löschen (könnte zerschnitten worden sein, also weg damit)
7) Anfügen von '...'
$data['shorttext'] = str_replace(array(' ',' ','<br>','<br/>','<br />','</p>',"\n",' '),array(' ',' ',' ',' ',' ',' ',' ',' '),$data['text']); $data['shorttext'] = preg_replace("/[^ ]*$/", '',substr(strip_tags($data['shorttext']),0,450)) . '...' ; Wenn jetzt noch einer eine Idee hätte wie ich das:
Hier ist ein Satz<br />
Und noch einer.
automatisch umwandele in
Hier ist ein Satz. Und noch einer.
wäre das kürzen für mich perfekt.
Überall den Punkt einbauen und später wegwerfen ist problematisch, da manche Texte innerhalb irgendwo '...' enthalten.
EDIT: ACHTUNG! Forumsoftware baut hier Mist!!! & Lattenzaun 160 Semikolon wird zerschossen zu & Lattenzaun 38 Semikolon Lattenzaun 160 Semikolon!!!
Linkback: https://www.modified-shop.org/forum/index.php?topic=32353.0