problem mit wordwrap
Jürgen
- php
0 parse_error0 Jürgen1 parse_error0 Jürgen
Hi und Hallo,
ich habe ein Problem mit der Funktion wordwrap. Ich habe einen Text aus dem ich wörter kürzen will die zulang sind! das mache ich wie folgt:
$text = wordwrap($row['text'], 65, "\n", 1);
65 Zeichen dürfen max. vorkommen damit das Layout nicht gestört wird. Mein Problem ist jetzt, dass wenn jemand einen normalen Text Schreibt dieser auch komischerweise nach 65 Zeichen einen Zeilenumbruch bekommt und der gesamte Text wie eingerückt aussieht... Es sollten ja eig. nur zulange Wörter gekürzt werden. Kennt jemand das Problem? Weiß jemand was ich dagegeben tun kann?
Hi,
$text = wordwrap($row['text'], 65, "\n", 1);
Mein Problem ist jetzt, dass wenn jemand einen normalen Text Schreibt dieser auch komischerweise nach 65 Zeichen einen Zeilenumbruch bekommt und der gesamte Text wie eingerückt aussieht...
Du hast Wordwarap nicht verstanden. Das ist die Aufgabe von wordwarap. Siehe http://de2.php.net/manual/de/function.wordwrap.php
Es sollten ja eig. nur zulange Wörter gekürzt werden. Kennt jemand das Problem? Weiß jemand was ich dagegeben tun kann?
Es kommt darauf an, wie du das mit "zu lange Wörter kürzen" meinst!?
Möchtest du, dass Wörter, die länger als 65 Zeichen sind, getrennt werden?
Oder dass sie "gekürzt" im Sinne von Sehrlangeswo(...) werden?
Greets - parse_error;
Ich möchte einfach nur, dass lange Wörter getrennt werden um mein Layout nicht zu stören...
Hi folks,
Ich möchte einfach nur, dass lange Wörter getrennt werden um mein Layout nicht zu stören...
Dann versuche es doch z.B. mal so:
mit explode(" ",$deintext); splittest du deinen Text und fügst alle Wörter als einzelne Elemente einem Array hinzu.
Dann kannst du alle Wörter in einer Schleife durchgehen und mittels z.B. strlen() deren Länge prüfen.
Wenn Sie dann länger sind, als deine gewünschten 65 Zeichen, brichst du sie nach 64 Zeichen um (z.B. mithilfe von str_split()) und fügst ein "-" hinten an.
Den Rest des Wortes fügst du dann eine Zeile weiter unten ein.
Das ist dann zwar grammatikalisch nicht immer korrekt, da auch so Trennungen wie z.B. "Mas-chinenfu-hrpark" (nur als Beispiel!) herauskommen können, aber es zerstört dein Layout nicht.
Eine Funktion, die dir Wörter grammatikalisch korrekt nach Silben trennt, ist mir leider nicht bekannt.
Greets - parse_error;
wenn es jemand wissen will:
function specialwordwrap($text, $width)
{
$text = explode(" ", $text);
$newtext = array();
foreach($text as $key => $txt)
{
if(strlen($txt) > $width)
{
$txt = wordwrap($txt, $width, " ", 1);
}
$newtext[] = $txt;
}
return implode(" ",$newtext);
}