nl2br umdrehen oder andere lösung!

Fire-Fabian

Mitglied
Hallo.
Habe ein Problem...
ich habe ein gästebeuch gecodet, mit mysql.
da ist ein eingabe feld,
wenn man dort einen text eingiebt wird dieser per "htmlspecialchars" von html befreit und dann in die datenbank eingetragen.

ausgelesen wird das ganze mit nl2br damit die umbrüche .

jetzt habe ich aber das problem das wenn jemand einen eintrag beispiel:
"kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
oder so mach (spam) das dann das ganze gästebuch zerfetzt wird, da die tabellen dann unnötig größer werden... dazu kann man ja das wrap des textfeldes auf virtual stellen,
also das praktisch beim überschreiten der textfeldgröße ein br ODER nl gesetzt wird.

habe nur keinen plan woran es liegt weil es nicht... weiß auch nicht genau welchen befehl das wrap virtual jetzt genau ersetzt... ist es ein br wird er ja vom htmlcleaner vernichtet, ist es ein n (was ich eher glaube) funkt es irgendwie nit so ganz... jemand nen Vorschlag der mir helfen könnte ? mfG und danke fürs lesen.
 
Hallo,
dein Problem könntest du mit [phpf]wordwrap[/phpf] lösen.

mfg
forsterm
 
Zuletzt bearbeitet:
howdy :D

danke für die schnelle hilfe... wordwrap finde ich schon ne gute idee, nur das Prob ist, es ist ein gästebuch bei dem man auch manuel zeilenumbrüche machen darf...
und warp will ja nen string...
in dem string steht dann praktisch (mit vom user gemachten umbrüchen:)

hallo \n tolle seite \n meld dich mal bei mir \n mfG

oder sowas in der Art... wird so ein string dann auch nochmal unterbrochen wenn ich den wrap auf 10 stelle ? dann würde der ja irgendwo bei seite auch noch nen \ setzen, obwohl eine zeile an sich die 10 garnicht überschreitet, ABER der ganze string (gesamter beitrag)+

gibt es dafür auch ne lösung ?
 
Die Funktionen im von mir verlinkten Beitrag (lies Dir mal alle Beiträge durch) trennen lediglich überlange Einzelwörter - das übrige Layout der Eingabe bleibt erhalten..

Gruß
.
 
danke, ich glaube das hier ist auch das was ich brauche:
Code:
 function strip_words($str, $maxlen) { 
    $arr = split(" ", $str); 
    foreach ($arr as $key=>$val) { 
        if (strlen($val) > $maxlen) $arr[$key] = substr($val, 0, $maxlen - 3)."..."; 
    } 
    return join(" ", $arr); 
}

aber irgendwie brauche ich dazu nen bischen Hilfestellung...
$str dürfte die Zeichenkette sein welche aus der sql ausgelesen oder eingetragen wird,
$maxlen fürften die maximalen zeichen eines wortes sein...
das "..." wird dann sicherlich halt an das gekürtzte wort drangehängt ...
aber welche varibale den geänderten string dann wieder ausgiebt und für mich praktisch wichtig ist versteh ich nit!
Kann mir da jemand helfen ?
 
Problem ist bei deinem beitrag aber das gleiche wie bei dem anderen:
der einbau...
wie gesagt, ich versteh ja was das script macht, nur nicht wie ich es jetzt genau einbaue!
 
Das Ganze ist doch schon in einer handlichen Funktion verpackt. Das Einzige, was du jetzt noch machen musst, ist die Zeichenkette durch die Funktion mit Angabe der maximalen Wortlänge zu jagen. Das war’s.
 
ja ^^ so weit hab ich das ja auch verstanden, nur wie heißt die Variable die hinterger rauskommt und meinen String in veränderter Form enthält ?
 
Zurück