Ausgabe von MySQL Text-Feld in EINER zeile ohne Umbruch

Ausgabe von MySQL Text-Feld in EINER zeile ohne Umbruch

am 07.11.2005 13:48:30 von Markus Schmidt

Hallo NG!

Wahrscheinlich ist mein Problem lächerlich gering - aber ich hab noch nix
gefunden, was mir helfen könnte :(

Folgendes Szenario: aus einer Mysql-Abfrage kommt der Wert $row["text"] -
ein MySQL Textfeld mit diversen Schreibereien drin (genauer: Nachichten von
User zu User). Mit diesem Textinhalt möchte ich über ein Javascript dem User
beim Antworten die Möglichkeit geben, den ursprünglichen Text in das
Antwortfeld zu quoten - klappt auch - solange bis die urspr. Nachricht
Zeilenumbrüche enthält... also Sieht das etwa so aus:

$ursprünglichertext="
>Hallo,
>
>hier steht jetzt\n
>
>mein toller Text!"

durch die Umbrüche zerhauts mir dann jedesmal das Javascript :( und daher
möchte ich nun gerne, das das Ganze SO aussieht:

$text=">Hallo,\n\n>hier steht jetzt\n> \n>mein toller Text!\n>";

Irgendwelche Ideen?

1000Dank im Voraus
Markus

Re: Ausgabe von MySQL Text-Feld in EINER zeile ohne Umbruch

am 07.11.2005 15:22:45 von Martin Honnen

Markus Schmidt wrote:


> Nachricht
> Zeilenumbrüche enthält... also Sieht das etwa so aus:
>
> $ursprünglichertext="
>
>>Hallo,
>>
>>hier steht jetzt\n
>>
>>mein toller Text!"
>
>
> durch die Umbrüche zerhauts mir dann jedesmal das Javascript :( und daher
> möchte ich nun gerne, das das Ganze SO aussieht:
>
> $text=">Hallo,\n\n>hier steht jetzt\n> \n>mein toller Text!\n>";

So du ein JavaScript-String-Literal aus einem PHP-String erzeugen
willst, musst du halt str_replace benutzen, also etwa so
str_replace(array("\n", "\r", '"'), array("\\n", "\\r", "\\\""),
$ursprünglichertext)
um Zeilenumbrueche und Anfuehrungszeichen zu escapen.


--

Martin Honnen
http://JavaScript.FAQTs.com/

Re: Ausgabe von MySQL Text-Feld in EINER zeile ohne Umbruch

am 07.11.2005 17:13:41 von Markus Schmidt

Hallo Martin,

> So du ein JavaScript-String-Literal aus einem PHP-String erzeugen willst,
> musst du halt str_replace benutzen, also etwa so
> str_replace(array("\n", "\r", '"'), array("\\n", "\\r", "\\\""),
> $ursprünglichertext)
> um Zeilenumbrueche und Anfuehrungszeichen zu escapen.

Das war die Lösung! das 2. "\" (autsch!)

So sieht das in "fertig" aus:

$quotemsg = ereg_replace ("\r\n","\\n>", $myrow["nachricht"]);
$neuertext = wordwrap( $quotemsg, 75, "\\n>" );
$quotemsg=$neuertext;

Vielen Dank und schönen Abend noch!

Markus