Wie handhabt Zeilenumbrüche in Javascript? (von PHP)
Habe ich code wie diesen:
<?php
echo '<script type="text/javascript">';
echo 'var out="'.$txt.'";';
echo '</script>';
?>
Wobei $txt ist eine PHP-variable, die kann Zeilenumbrüche enthalten wie diese:
line1
line2 hello world
Würde so enden:
var out="line1
line2 hello world";
Wird zu einem Javascript Fehler führen, natürlich.
Was ist der beste Weg, dies zu behandeln? Die out-variable wird verwendet, in einer HTML-textarea, also ich glaube nicht, es kann analysiert werden, in <br>
Du musst angemeldet sein, um einen Kommentar abzugeben.
ersetzen Zeilenumbrüche. Nicht tun es auf diese Weise.
Dies ist eine naive Implementierung von string-escaping für JavaScript -. Wie bist du eigentlich versuchen zu formatieren Sie eine Zeichenfolge für die Verwendung in JavaScript, das ist eine viel bessere Lösung wäre die Verwendung
, die Funktionen json_encode
:json_encode
richtig spezielle escape-Zeichen in strings, wie z.B. Zitate, tabs, feeds und andere spezielle unicode-Zeichen. Es führen auch alle das richtige escaping für die Umwandlung von Objekten, arrays, zahlen und booleans.\n
? In JavaScript"\n"
wird ein newline, aber wenn Sie es passieren"\\n"
erhalten Sie\n
als Ausgabe. Überprüfen Sie Ihre Seite Quelle, und sehen, was der JavaScript-code ist coming-out.können Sie ein
\
am Ende einer Zeile erzeugt eine mehrzeilige ZeichenketteKönnen Sie
str_replace
zu konvertieren Zeilenumbrüche in einen anderen Charakter (in diesem Fall vielleicht einen Platz, aber es hängt davon ab, wie Sie wollen, den Ausgang zu zeigen)Ergebnis:
Meisten dieser arbeiten nicht für mich.
Normalerweise verwende ich die Funktionen json_encode wie
Aber für eine schnelle Lösung, können Sie nur brechen eine Zeile wie diese:
Achten Sie auf die Anführungszeichen.
. . .
Ich versuchte dies und es funktionierte gut.
Ich bin mit PHP 5.3