Forum Doku Wiki Blog

Forumsarchiv 2004, Oktober
Formular->Datenbank->"falsche Ausgabe des textes"

archivierte Beiträge lesen

  1. (PHP) Formular->Datenbank->"falsche Ausgabe des textes" von Eike, 20. 10. 2004, 23:32

Formular->Datenbank->"falsche Ausgabe des textes"

Der folgende Beitrag wurde am 20. 10. 2004, 23:32 Uhr von Eike veröffentlicht.

Moin,
mein problem ist es einen in einer Datenbank gespeicherten Text richtig mit den zeilenumbruechen wiederzugeben.

Ich hab ein <textarea> feld. Da gibt der User etwas ein. Dies wird zur Db geschickt(gespeichert).
Eine andere Seite liest den text von dort aus.
(wie Gaestebuch). Beispiel text:
User gibt ein:
Hallo
Wie gehts?

ausgegeben wird:
Hallo Wie gehts?

Kein Zeilenumbruch.
aber in der Db ist der Text mit Zeilenumbruechen. Und wenn ich den text mit <pre> ausgebe sind auch welche vorhanden. Das Problem bei <pre> ist nur, dass die Textgroeße nicht stimmt und das anders aussieht als normaler text. Wie Schreibmaschine.

Was muss ich machen?

Formular->Datenbank->"falsche Ausgabe des textes"

Der folgende Beitrag wurde am 20. 10. 2004, 23:51 Uhr von wahsaga veröffentlicht.

hi,

> Was muss ich machen?

zeilenumbrüche in <br> (bzw. <br />) umwandeln, was sonst?

unter PHP beispielsweise gibt es dafür die funktion nl2br().

btw: weißt du, wie oft diese frage hier gestellt wird? nächstes mal bitte vorher einen blick ins archiv werfen, danke.

gruß,
wahsaga


--
"Look, that's why there's rules, understand? So that you _think_ before you break 'em."

Formular->Datenbank->"falsche Ausgabe des textes"

Der folgende Beitrag wurde am 21. 10. 2004, 01:43 Uhr von sirdan veröffentlicht.

$neuerText = eregsub("\n","<BR>",$alterText);

ist Dein Feund.

Formular->Datenbank->"falsche Ausgabe des textes"

Der folgende Beitrag wurde am 21. 10. 2004, 05:33 Uhr von Tom veröffentlicht.

Hello,

> $neuerText = eregsub("\n","<BR>",$alterText);
>
> ist Dein Feund.

Das ist aber nicht unbedingt notwendig, so eine teure Funktion zu verwenden. Und es ist auch nicht unbedingt ratsam, die "\n" gegen die <br /> auszutauschen, da ja ein <br /> auch im Quelltext die ideale Stelle für einen Zeilenumbruch ist. Vielleicht möchte man den auch lesen können.


Harzliche Grüße aus http://www.annerschbarrich.de

Tom
--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau

Formular->Datenbank->"falsche Ausgabe des textes"

Der folgende Beitrag wurde am 23. 10. 2004, 01:44 Uhr von sirdan veröffentlicht.

> Das ist aber nicht unbedingt notwendig, so eine teure Funktion zu verwenden. Und es ist auch nicht unbedingt ratsam, die "\n" gegen die <br /> auszutauschen, da ja ein <br /> auch im Quelltext die ideale Stelle für einen Zeilenumbruch ist. Vielleicht möchte man den auch lesen können.

Und was waere denn ratsam, Deiner Meinung nach ?
Das geschilderte Problem wird mit dem re wenigstens geloest.

Formular->Datenbank->"falsche Ausgabe des textes"

Der folgende Beitrag wurde am 23. 10. 2004, 08:20 Uhr von Tom veröffentlicht.

Hello,

> Und was waere denn ratsam, Deiner Meinung nach ?

Die dafür vorgesehene Funktion nl2br() zu verwenden ;-)



Harzliche Grüße aus http://www.annerschbarrich.de

Tom
--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau

Formular->Datenbank->"falsche Ausgabe des textes"

Der folgende Beitrag wurde am 23. 10. 2004, 13:39 Uhr von sirdan veröffentlicht.

> [...] da ja ein <br /> auch im Quelltext die ideale Stelle für einen Zeilenumbruch ist. Vielleicht möchte man den auch lesen können.

Ich versteh hier nicht, was Du meinst.

Macht nlbr nicht dasselbe wie mein re ?

Formular->Datenbank->"falsche Ausgabe des textes"

Der folgende Beitrag wurde am 23. 10. 2004, 14:07 Uhr von Siechfred veröffentlicht.

Hallo sirdan,

> Macht nlbr nicht dasselbe wie mein re ?

Nein. Dein RegEx erfasst nur "\n", es gibt aber plattformabhängig auch andere Zeilenumbrüche, nl2br() berücksichtigt dies im Übrigen. Korrekterweise müsste ein RegEx lauten '/\015\012|\015|\012/'. Mehr Details liefert dir eine Archivsuche.

Freundschaft!
Siechfred
--
Nichts ist schwerer einzureißen als die Mauer in den Köpfen.

Bug in der Suche?

Der folgende Beitrag wurde am 23. 10. 2004, 18:17 Uhr von Tom veröffentlicht.

Hello,

nur mal so nebenbei:
Ich habe gerade versucht, nach

  \015\012|\015|\012

zu suchen. Da gab es kein Ergebnis. Aber es müssten mindestens 50 auffindbar sein.
Ich befürchte, dass das einen Eintrag in CKs Unlieblingsprogramm erfordert. Bitte schaut doch mal, ob das stimmt, oder ich einfach krumm gedacht habe.



Harzliche Grüße aus http://www.annerschbarrich.de

Tom
--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau

Formular->Datenbank->"falsche Ausgabe des textes"

Der folgende Beitrag wurde am 24. 10. 2004, 11:55 Uhr von sirdan veröffentlicht.

>> Korrekterweise müsste ein RegEx lauten '/\015\012|\015|\012/'

ack

Formular->Datenbank->"falsche Ausgabe des textes"

Der folgende Beitrag wurde am 21. 10. 2004, 10:09 Uhr von wahsaga veröffentlicht.

hi,

> $neuerText = eregsub("\n","<BR>",$alterText);
>
> ist Dein Feund.

und was ist mit \r?

gruß,
wahsaga


--
"Look, that's why there's rules, understand? So that you _think_ before you break 'em."

Formular->Datenbank->"falsche Ausgabe des textes"

Der folgende Beitrag wurde am 23. 10. 2004, 01:42 Uhr von sirdan veröffentlicht.

> und was ist mit \r?

Loesung 1:

ereg_replace("\r","");

Loesung 2: (empfohlen)

ereg_replace("WIN[95|98|2000|XP]","Linux");

Formular->Datenbank->"falsche Ausgabe des textes"

Der folgende Beitrag wurde am 21. 10. 2004, 05:30 Uhr von Tom veröffentlicht.

Hello,

bevor Du den Text in die DB schickst, muss er mit der für die DB passenden escpae-Funktion behandelt werden. Zeilenumbrüche werden da nämlich maskiert bzw. Codiert, damit die DB keinen Schaden nimmt. Also die von PHP ggf. automatisch hinzugefügten Maskierungen wieder entfernen und die für die Datenbank bassenden hinzufügen.

Bei der Wiedergabe dann immer auf das Ausgabeziel achten.
In der Textarea ist nur htmlentities($text) notwendig, damit da nicht z.B. aus Versehen mitten in der Textarea Tags auftauchen und im normalen Text nl2br(htmlentities($text)).





Harzliche Grüße aus http://www.annerschbarrich.de

Tom
--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4