Ausgabe von MySQL Text-Feld in EINER zeile ohne Umbruch

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
Markus Schmidt [ Mo, 07 November 2005 13:48 ] [ ID #1047608 ]

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

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/
Martin Honnen [ Mo, 07 November 2005 15:22 ] [ ID #1047609 ]

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

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
Markus Schmidt [ Mo, 07 November 2005 17:13 ] [ ID #1047612 ]
PHP » de.comp.lang.php.datenbanken » Ausgabe von MySQL Text-Feld in EINER zeile ohne Umbruch

Vorheriges Thema: PHP 5.0.5 + MySQL 5 + Apache2 unter win32
Nächstes Thema: Suche spezielle Wiki-Engine mit DB-Funktionalitäten