Contoh PHP - Pembaca RSS AJAX
Contoh PHP - Pembaca RSS AJAX
Pembaca RSS digunakan untuk membaca Suapan RSS.
AJAX RSS Reader
Dalam contoh berikut, kami akan menunjukkan pembaca RSS yang melaluinya kandungan daripada RSS dipaparkan pada halaman web tanpa menyegarkan perkara berikut dimuatkan:
Contoh penjelasan - halaman HTML
Apabila pengguna memilih RSS dalam senarai juntai bawah suapan di atas, fungsi bernama "showRSS()" akan dilaksanakan. Fungsi ini dicetuskan oleh acara "Onchange":
<html> <head> <meta charset="utf-8"> <title>php中文网</title> <script> function showRSS(str) { if (str.length==0) { document.getElementById("rssOutput").innerHTML=""; return; } if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码 xmlhttp=new XMLHttpRequest(); } else { // IE6, IE5 浏览器执行代码 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("rssOutput").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","getrss.php?q="+str,true); xmlhttp.send(); } </script> </head> <body> <form> <select onchange="showRSS(this.value)"> <option value="">选择一个 RSS-feed:</option> <option value="rss">读取 RSS 数据</option> </select> </form> <br> <div id="rssOutput">RSS-feed 数据列表...</div> </body> </html>
Fungsi Tayangan () akan melaksanakan langkah berikut:
· Semak sama ada terdapat RSS-FEED dipilih
Cipta objek xmlhttprequest
<创> · Fungsi dicipta apabila respons pelayan sedia· Hantar permintaan ke fail pada pelayan
Kandungan senarai juntai bawah) Fail PHP Fail rss_demo.xml. Halaman pelayan yang dipanggil di atas melalui JavaScript ialah fail PHP bernama "getrss.php":
<?php // rss 文件 $xml="rss_demo.xml"; $xmlDoc = new DOMDocument(); $xmlDoc->load($xml); // 从 "<channel>" 中读取元素 $channel=$xmlDoc->getElementsByTagName('channel')->item(0); $channel_title = $channel->getElementsByTagName('title') ->item(0)->childNodes->item(0)->nodeValue; $channel_link = $channel->getElementsByTagName('link') ->item(0)->childNodes->item(0)->nodeValue; $channel_desc = $channel->getElementsByTagName('description') ->item(0)->childNodes->item(0)->nodeValue; // 输出 "<channel>" 中的元素 echo("<p><a href='" . $channel_link . "'>" . $channel_title . "</a>"); echo("<br>"); echo($channel_desc . "</p>"); // 输出 "<item>" 中的元素 $x=$xmlDoc->getElementsByTagName('item'); for ($i=0; $i<=1; $i++) { $item_title=$x->item($i)->getElementsByTagName('title') ->item(0)->childNodes->item(0)->nodeValue; $item_link=$x->item($i)->getElementsByTagName('link') ->item(0)->childNodes->item(0)->nodeValue; $item_desc=$x->item($i)->getElementsByTagName('description') ->item(0)->childNodes->item(0)->nodeValue; echo ("<p><a href='" . $item_link . "'>" . $item_title . "</a>"); echo ("<br>"); echo ($item_desc . "</p>"); } ?>Apabila permintaan untuk suapan RSS dihantar daripada JavaScript ke fail PHP, apa yang akan berlaku ialah:
<检> · Semak Suapan RSS mana yang dipilih
· Cipta objek XML DOM baharu
· Muatkan dokumen RSS dalam pembolehubah XML
· Dari Saluran Ekstrak dan keluarkan elemen
· Ekstrak dan keluarkan elemen
daripada elemen item