Artikel ini menunjukkan membina PHP XML ke JSON Proxy Server. Pendekatan ini menawarkan penyelesaian praktikal untuk memanfaatkan kelebihan pertukaran data XML sambil mempermudahkan interaksi JavaScript klien menggunakan format JSON yang lebih diperkemas.
Manfaat Utama:
Sistem ini terdiri daripada dua bahagian: pelayan proksi PHP dan klien JavaScript.
JavaScript Client:
url
SimpleXMLElement
Mengembalikan data JSON kepada klien JavaScript. Termasuk pengendalian ralat untuk mengelakkan kesilapan PHP daripada mencapai klien. json_encode
) untuk pengurusan ralat yang mantap. Ia mengambil data XML menggunakan curl, menukarkannya ke JSON, dan mengembalikan hasilnya. Sekiranya ralat berlaku semasa pengambilan atau parsing, bendera ralat JSON dikembalikan.
kod javascript (proxy.html - contoh): ini_set('display_errors', false)
ReturnError()
<?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}'; } ?>
Pengendalian atribut XML:
JSON.parse
fungsi
// 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; } }
Soalan Lazim (Soalan Lazim):
json_encode
Seksyen FAQ yang disediakan menawarkan gambaran menyeluruh mengenai perbezaan XML dan JSON, teknik penukaran, pengendalian ralat, dan strategi pengoptimuman dalam konteks PHP.
ingat untuk menggunakan xmlproxy.php
dan fail JavaScript anda (mis., proxy.html
) ke pelayan web dengan PHP diaktifkan. Ganti "http://domain.com/example.xml?status=123&date=2011-01-01"
dengan url sumber data XML sebenar anda.
Atas ialah kandungan terperinci Cara Membuat XML ke JSON Proxy Server di PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!