mir zerpröselts die site ;(

blubber

Erfahrenes Mitglied
Hi,

ich hab da ein big Problem. Und zwar hat mein Newsscript eine Kommentarfunktion, gut. Wenn jetzt aber irgendein Heini ein Kommtar postet, und sozusagen ein wort mit 50 zeichen OHNE leerzeichen schreibt, zerpröselts mir meine Site, weil der nicht automatisch das wort trennt.

Kann mir da einer weiterhelfen??

bye
 
das geht mit php oder html.

edit:
argh ich idiot falsch gelesen, ich bin vom benutzernamen ausgegangen.
 
Zuletzt bearbeitet:
dem kannst du mit wordwrap() entgegenwirken
PHP:
$kommentar = wordwrap($kommentar, 50, "\n", 1);
der code oben z.B. bricht einen text nach 50 zeichen automatisch in die nächste zeile um - ausserdem werden auch ganze wörter mittendrin umgebrochen
näeheres auf php.net ;)
gruss
 
hi, erstmal danke für die hilfe.

Eine frage aber noch, gibt es eine funktion, mit der ich in einem text die länge einzelner Wörter ermitteln kann, so dass ich sowas realisieren könnte:

if(irgend ein wort länger als 30 zeichen)
{
$kommentar = wordwrap($kommentar, 50, "\n", 1);
}

weil das problem mit dem wordwrap ist, dass es nur zum einsatz kommen soll, wenn wirklich jemand so ein blödsinn postet.

bye
 
PHP:
$arr = explode(" ", $beitrag);
$a = 0;
while($word = $arr[$a]){
if(strlen($word) >= 30)
$word = substr($word, 0, 30)."-\n".substr($word, 30);
$arr[$a] = $word;
$a++;
}
$beitrag = implode(" ", $arr);

so sollte es gehen
 
Hi brÅinstorm,

dein script funktioniert ganz gut, doch einen haken hat die sache, es geht NICHT über mehrere zeilen. Sprich, in der ersten zeile trennt er das wort nach 30 zeichen, doch in den nächsten zeilen nichtmehr.

Könntest das vielleicht noch mit einbauen? Dann wär die sache perfekt :)

bye
 
keine ahnung obs funktioniert, aber setz mal ein folgendes vor das script:
PHP:
$beitrag = nl2br($beitrag);
 
jetzt hab ich verstanden, was du meinst... also ein wort, das zb mehr als 60 zeichen hat wird nicht zweimal getrennt... stimmt...

lösung kommt gleich.
 
PHP:
$arr = explode(" ", $beitrag);
$a = 0;
while($word = $arr[$a]){
if(strlen($word) >= 30){

$c = 0;
while(strlen($word) > $c){
$wword .= substr($word, $c, 10);
if(strlen($word) - $c >= 10)$wword .= "-\n";
$c = $c + 10;
}

$arr[$a] = $wword;

}

$a++;
}
$beitrag = implode(" ", $arr);
 
Zurück