Zeilenumbrüche entfernen und neue Zeilen von PHP-variable mit dem Wert?
Ich habe ein PHP-Skript, das das folgende tut:
- Verwendet, file_get_contents() zum abrufen von Inhalten der html-Datei
- Echos ein JSON-Objekt
Das Problem ist, dass der erhaltene Wert von file_get_contents ist multi line. Es muss alles in einer Zeile, um in den korrekten JSON-format.
Beispielsweise
PHP-Datei:
$some_json_value = file_get_contents("some_html_doc.html");
echo "{";
echo "\"foo\":\"$some_json_value\"";
echo "}";
Die resultierende html-Dokument sieht wie folgt aus:
{
foo: "<p>Lorem ipsum dolor
sit amet, consectetur
adipiscing elit.</p>"
}
Mein Ziel ist es, die resultierende html-Dokument sieht wie folgt aus (der Wert ist eine Zeile, nicht drei)
{
foo: "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>"
}
Wie kann das getan werden. Ich merke, dass der Inhalt einer Zeile, wenn die original-html-doc ist eine Linie; dennoch versuche ich zu vermeiden, dass Lösung.
Update
Die Frage richtig beantwortet wurde. Hier der komplette, funktionierende code:
$some_json_value = file_get_contents("some_html_doc.html");
$some_json_value = json_encode($some_json_value); //this line is the solution
echo "{";
echo "\"foo\":\"$some_json_value\"";
echo "}";
InformationsquelleAutor edt | 2009-07-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es andere Zeichen als Zeilenumbrüche, die Sie verursachen Probleme (doppelte Anführungszeichen und umgekehrte Schrägstriche zum Beispiel) und so eher als gerade Streifen, Zeilenumbrüche, es wäre besser für die Kodierung von JSON richtig. Für PHP >= 5.2 gibt es die built-in
json_encode
Funktion, und es gibt Bibliotheken für ältere Versionen von PHP (siehe z.B., http://abeautifulsite.net/notebook/71)Das klappte! Ich fügte hinzu, Ihre Lösung zu meiner ursprünglichen Frage.
Man könnte auch einfach so machen: echo für json_encode(array('foo' => $some_json_value));
Danke. Es löste mein problem, wenn Sie versuchen zu halten, einige gefüllt-mit-tags' Sachen in JS-vars. +1
InformationsquelleAutor D. Evans
Tun einfach ersetzen?
Aber eine bessere Idee wäre eine die Funktionen json_encode() sofort;
InformationsquelleAutor Björn
Können Sie ersetzen Sie alle vorkommen von \n und \r mit "". Check-out preg_replace.
\n ist ein Zeilenumbruch... Wie Ihr Betreff Staaten. Sie können immer noch gelten die gleichen Grundsätze mit dem Aufruf von preg_replace.
InformationsquelleAutor Alexander Trauzzi