Heim >Web-Frontend >js-Tutorial >So erstellen Sie eine XML -an JSON -Proxy -Server in PHP
Dieser Artikel zeigt, dass ein PHP XML auf JSON Proxy Server erstellt wird. Dieser Ansatz bietet eine praktische Lösung für die Nutzung der Vorteile des XML-Datenaustauschs und die Vereinfachung der clientseitigen JavaScript-Interaktionen mithilfe des optimierteren JSON-Formats.
Schlüsselvorteile:
Wie es funktioniert:
Das System umfasst zwei Teile: einen PHP -Proxy -Server und einen JavaScript -Client.
url
). SimpleXMLElement
. json_encode
in JSON. php Code (xmlproxy.php):
Das PHP -Skript verwendet die Fehlerunterdrückung (ini_set('display_errors', false)
) und einen benutzerdefinierten Ausnahmebehandler (ReturnError()
) für eine robuste Fehlerverwaltung. Es holt die XML -Daten mit Curl ab, konvertiert sie in JSON und gibt das Ergebnis zurück. Wenn beim Abrufen oder Parsen ein Fehler auftritt, wird ein JSON -Fehlerflag zurückgegeben.
<?php ini_set('display_errors', false); set_exception_handler('ReturnError'); $r = ''; $url = (isset($_GET['url']) ? $_GET['url'] : null); if ($url) { $c = curl_init(); curl_setopt_array($c, array( CURLOPT_URL => $url, CURLOPT_HEADER => false, CURLOPT_TIMEOUT => 10, CURLOPT_RETURNTRANSFER => true )); $r = curl_exec($c); curl_close($c); } if ($r) { echo json_encode(new SimpleXMLElement($r)); } else { ReturnError(); } function ReturnError() { echo '{"error":true}'; } ?>
JavaScript Code (proxy.html - Beispiel):
Der JavaScript -Code definiert die Remote -XML -URL, stellt eine AJAX -Anforderung an den PHP -Proxy durch und übernimmt die JSON -Antwort. Es verwendet einen Fallback für ältere Browser ohne native JSON.parse
.
// example XML feed var url = "http://domain.com/example.xml?status=123&date=2011-01-01"; // AJAX request var xhr = (window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP")); xhr.onreadystatechange = XHRhandler; xhr.open("GET", "xmlproxy.php?url=" + escape(url), true); xhr.send(null); // handle response function XHRhandler() { if (xhr.readyState == 4) { var json; if (JSON && JSON.parse) { json = JSON.parse(xhr.responseText); } else { eval("var json = " + xhr.responseText); } console.log(json); xhr = null; } }
XML -Attributhandhabung:
Die json_encode
-Funktion in PHP übernimmt XML -Attribute, indem ein @attributes
-Objekt innerhalb der JSON -Ausgabe erstellt wird.
häufig gestellte Fragen (FAQs):
Der vorgesehene FAQS -Abschnitt bietet einen umfassenden Überblick über XML- und JSON -Unterschiede, Conversion -Techniken, Fehlerbehelde und Optimierungsstrategien im Kontext von PHP.
Denken Sie daran, xmlproxy.php
und Ihre JavaScript -Datei (z. B. proxy.html
) auf einem Webserver mit aktiviertem PHP bereitzustellen. Ersetzen Sie "http://domain.com/example.xml?status=123&date=2011-01-01"
durch Ihre tatsächliche XML -Datenquellen -URL.
Das obige ist der detaillierte Inhalt vonSo erstellen Sie eine XML -an JSON -Proxy -Server in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!