Tom: Zeilenumbruch in Gästebuch

Beitrag lesen

Hello,

Ich suche eine Funktion, die mir Einträge, die aus sinnlos langen Wörtern bestehen, abhackt, sprich nach x-Zeichen in einem Wort einen Leerschlag oder Zeilenumbruch einfügt.

wordwrap() will ich nicht verwenden, da wordwrap den Text immer na der gewissen Anzahl Zeichen bricht (oder beim nächsten Whitespace), ich will aber eine Funktion, die NUR ab z.B. 20 Zeichen ohne Leerschlag, Zeilenumbruch, etc einen Umbruch einfügt.

Sortier erstmal, was Du wirklich willst. Deine Forderungen sind nicht wirklich schlüssig.

eine Funktion,
[ ] die das Überschreiten der Zeilenlänge x verhindert
[ ] die ein Wort nur dann umbricht, wenn es am Ende der Zeile steht,
    und länger als y Zeichen ist

Alleine schon diese beiden Forderungen werfen die Frage auf, was mit Worten geschehen soll, die am Ende der Zeile stehen und kürzer als y Zeichen sind.

Damit die Zeilenlänge x nicht überschritten werden kann, müsste so ein Wort entweder total entfernt werden, oder komplett auf die nächste Zeile verschoben werden. Das soll es aber nach Deiner obigen Aussage zu wordwrap() nicht.

Also: wie lauten Deine sortierten und abgeglichenen Forderungen nun?

Ich schlage vor, dass Du wordwrap() benutzt :-))

http://de2.php.net/manual/en/function.wordwrap.php
Voraussetzungen: es handelt sich beim behandelten Text um Singlebyte-Codierung also z.B. ISO-8859-1.

Da es eine Funktion mb_wordwrap() noch nicht gibt in PHP, müsstest Du dir diese für Multibyte-Codierungen selber schreiben.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de