Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

hallo ...

ich hab eine Frage zur Darstellung von Zeilenumbrüchen. Hab gerad fleißig im Forum gesucht, und auch einiges an Lösungen gefunden, aber irgendwie funktioniert das ganze bei mir nicht.

ich speichere Text aus einer textarea folgendermaßen in einer Datenbank:

nl2br(stripslashes(strip_tags($nachricht)));

Beim Auslesen der Nachricht aus der Datenbank werden dann nur die manuell eingegebenen Zeilenumbrüche angezeigt, die automatischen werden ignoriert, so dass ich den ganzen Text in einer Zeile habe.

ich habe es bei der Textausgabe schon mit folgendem versucht:

$nachricht = str_replace("\n","<br>",$nachricht);

es klappt allerdings trotzdem nicht. :confused: (auch \r\n statt \n geht nicht).

kann mir jemand nen Tipp geben, woran das liegen könnte?

Danke.

~tine~

Geschrieben

Danke für den Tipp. Aber so funktioniert es auch nicht. ich habe den Text ohne nl2br abgespeichert und dafür mit nl2br($nachricht) ausgegeben, aber die automatischen Zeilenumbrüche werden trotzdem ignoriert.

Kann es vielleicht auch an etwas anderem liegen?

~tine~

Geschrieben
Beim Auslesen der Nachricht aus der Datenbank werden dann nur die manuell eingegebenen Zeilenumbrüche angezeigt, die automatischen werden ignoriert, so dass ich den ganzen Text in einer Zeile habe.

Ich müsste schon sehr falsch liegen, aber es gibt keine automatischen Umbrüche bei Texteingaben in einem TEXTAREA Feld. Zwar wird der Text beim Eingeben automatisch Umgebrochen, diese Umbrüche werden aber erst gar nicht zum Server gePOSTed. Wo nichts ist kannst du auch nichts zu <BR> wandeln.

Du solltest deinen Text selber parsen, z.b. in Worte SPLITten und nach gewissen Längen selber Umbrüche einfügen.

Auf jeden Fall prüfe mal ob der zum Server gepostete Text überhaupt die Umbrüche enthält.

Geschrieben

Doch, MySQL bzw. PHP wandelt Zeilenumbrüche sehr wohl in <br /> um! :) Dass es bei dir nicht funktioniert liegt daran, dass du als Feldtyp vermutlich varchar verwendest!? Ändere ihn mal in longtext - dann brauchst du nl2br weder beim Eintragen noch beim Auslesen. :)

Geschrieben

PHP und MySQL wandeln zwar Zeilenumbrüche um (falls welche vorhanden sind), aber in der Textarea gibt es keine Zeilenumbrüche, die umgewandelt werden könnten.

Afaik kann man nämlich die automatischen Zeilenumbrüche via HTML-Optionen auch ausschalten.

Man braucht sich nur mal den String aus der Textarea in einem Debugger anschaun, dann sieht man, dass da kein <br> oder \n oder sonstwas drin ist.

Geschrieben

Also so wie ich Ihn verstanden habe will er automatische Zeilenumbrüche aus einer Textarea in <br /> wandeln.

DevilDawn hat da schon recht. Die automatischen Zeilenumbrüche einer TextArea sind keine Zeilenumbrüche IMHO. Ich denke, dass seine Lösung mit Wortsplittung und Längenauslesen die einzige Möglichkeit ist.

ODER es gibt doch so verschiedene Typen, auf die man eine Textarea setzen kann, vielleicht setzt da ein Typus tatsächlich ein "\r\n" bei einem automatischen Zeilenumbruch.

gruss

markus

Geschrieben
ODER es gibt doch so verschiedene Typen, auf die man eine Textarea setzen kann, vielleicht setzt da ein Typus tatsächlich ein "\r\n" bei einem automatischen Zeilenumbruch.

Richtig, probierts mal bitte mit einem textarea in Verbindung mit einem Feld vom Typ longtext aus.

Geschrieben

ich mag mich irren,

aber ich glaube mich zu erinnern, dass es für die <textarea> etwas gab wie:

wrap=hard/soft

ich habs gefunden, schau mal hier:

selfhtml

ist zwar kein php, du solltest aber so einstellen können wie der text gesendet wird.

ciao TinTin

Geschrieben

Sagt mal, entschuldigt bitte, aber rede ich spanisch!? Wie wärs, wenn mal jemand ausprobieren würde, was ich oben geschrieben habe, anstatt mir hier weismachen zu wollen, dass das angeblich nicht geht...

Richtig, probierts mal bitte mit einem textarea in Verbindung mit einem Feld vom Typ longtext aus.
... oder wieso geht das komischerweise bei mir so!?

@wrap

Ist schon klar, geht auch via CSS mit white-space. ;) Das betrifft aber nur die Anzeige im Formular und nicht die Verarbeitung!

Geschrieben

Vielleicht weils mit dem Datentyp wirklich gar nix zu tun hat.

Für

Textarea - Mysql - Textarea

braucht man nix machen, manuell eingegebene Umbrüche werden wieder dargestellt, egal welcher Text Feldtyp in der DB verwendet wird.

Textarea - mysql - "normaler html Text"

Hier muss man nach dem Auslesen aus der Datenbank den Text mit nl2br umwandeln, damit die html <br /> hinzugefügt werden.

Automatische Zeilenumbrüche der Textarea browserübergreifend zu erfassen, halte ich für problematisch und ich wüßte auch nicht wofür. ;)

Gruß Jaraz

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...