Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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~

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~

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.

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. :)

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.

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

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.

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

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!

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.