Homepage selbermachen 7.852 Themen, 35.619 Beiträge

Probleme mit Funktion Wordwrap()

Heinz_Malcher / 4 Antworten / Baumansicht Nickles

Guten Morgen,

ich habe PHP.net heute mal wieder bemüht, und mit der
wordwrap() Funktion etwas gespielt. Dass dabei nichts
gescheites bei rumgekommen sein kann, könnt ihr euch
denken, wenn ich hier poste ;)

Also, folgendes habe ich versucht:
$text = "Ein gaaaaaaaaaaaaaaaaaaaaaaaaanz langes Wort soll umbrochen werden";

$neuer_text = wordwrap($text,20,"
",1);

echo $neuer_text;


So das klappt soweit auch, aber es wird nicht immer nach
20 Zeichen umbrochen, sondern mal nach 14 und so weiter,
was ich wollte, war, dass nur ganz lange zusammenhängende
Zeichen, also lange Wörter, umbrochen werden, und zwar
ab dem 20. Buchstaben. Versucht es selbst mal, er trennt
nicht nur die Wörter, die mehr als 20 Buchstaben haben,
sondern auch ganz normale Wörter, die eigentlich noch in
eine Zeile passen würden.

Gruss Heinz_Malcher

bei Antwort benachrichtigen
Zaphod Heinz_Malcher „Probleme mit Funktion Wordwrap()“
Optionen

PHP-Handbuch:
8> wordwrap

(PHP 4 >= 4.0.2)
wordwrap -- Zeilenumbruch eines Strings an einer angegebenen Stelle unter Verwendung eines angegebenen Trennzeichens
Beschreibung:

string wordwrap (string str [, int width [, string break [, int cut]]])

Bricht den String str an der mittels width angegebenen Position in die nächste Zeile um. Der Umbruch geschieht mit dem break Parameter.

Die Funktion wordwrap() bricht selbst an der Spalte 75 unter Verwendung des Steuerzeichens '\n' (neue Zeile) um, wenn die optionalen Parameter width und / oder break nicht angegeben werden.

Steht cut auf 1, wird der String immer an der vorgegebenen Länge umgebrochen. Ist ein Wort also länger als die gegebene Länge, wird es mitten drin umgebrochen (siehe zweites Beispiel)

Beispiel 1. wordwrap()-Beispiel:

$text = "Der schnelle braune Fuchs springt über den blöden Hund.";
$neuertext = wordwrap( $text, 20 );
echo "$neuertext\n";


Dieses Beispiel gibt aus:

Der schnelle braune
Fuchs springt über den blöden Hund.


Beispiel 2. wordwrap() example

$text = "Ein sehr langes Wooooooooooort.";
$neuertext = wordwrap( $text, 8, "\n", 1);
echo "$neuertext\n";


Dieses Beispiel gibt aus:

Ein sehr
langes W
oooooooo
ooort.


Siehe auch nl2br().
-------------------------------------------------------------------> *HTH*

bei Antwort benachrichtigen
Heinz_Malcher Zaphod „PHP-Handbuch: 8 wordwrap PHP 4 4.0.2 wordwrap -- Zeilenumbruch eines Strings an...“
Optionen

Hehe, Duuuuuu.... :-)

Genau das funktioniert bei mir nicht wie gewollt :

Ich hätte es gern so, dass er wirklich nur lange zusammenhängende Zeichen, beispielsweise Wörter umbricht, das tut er zwar, nebenbei jedoch bricht er aber auch noch andere Wörter einfach so mal um, dann sieht das zb. so aus:

Originaltext


Ich habe ein total gaaaaaaaaaaaaanz langes Wort.

Mit Wortwrap:

Ich
habe
ein
total
gaaaaaa
aaaaanz
langes
Wort

Gewünschter Text, so wie ich es gern hätte
Ich habe
ein total
gaaaaa
aaaaaz
langes
Wort

bei Antwort benachrichtigen
Zaphod Heinz_Malcher „Hehe, Duuuuuu.... :- Genau das funktioniert bei mir nicht wie gewollt : Ich...“
Optionen

... nimmm mal als Trennzeichen "\\n" statt " ", dann gehts auch wie gewünscht ...

bei Antwort benachrichtigen
Heinz_Malcher Zaphod „... nimmm mal als Trennzeichen n statt , dann gehts auch wie gewünscht ...“
Optionen

Thanx

bei Antwort benachrichtigen