Pembaca RSS AJAX
Pembaca RSS untuk membaca suapan RSS.
AJAX RSS Reader
Dalam contoh berikut, kami akan menunjukkan pembaca RSS yang melaluinya kandungan dari RSS ialah Halaman web dimuatkan tanpa memuat semula:
Pilih suapan RSS:
Baca data RSS
Senarai data suapan RSS...
Penjelasan contoh - halaman HTML
Apabila pengguna memilih suapan RSS dalam senarai lungsur di atas, panggilan dipanggil fungsi "showRSS()". Fungsi ini dicetuskan oleh acara "onchange":
<html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</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 showRSS() akan melaksanakan langkah berikut:
Semak sama ada suapan RSS dipilih
1) Cipta objek XMLHttpRequest
2) Cipta fungsi yang dilaksanakan apabila respons pelayan sedia
3) Hantar permintaan ke fail pada pelayan
4) Perhatikan parameter ditambahkan pada penghujung URL (q ) (Mengandungi kandungan senarai lungsur)
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:
1) Semak suapan RSS mana yang dipilih
2) Cipta objek XML DOM baharu
3) Muatkan dokumen RSS dalam pembolehubah xml
4) Ekstrak dan keluarkan elemen
daripada elemen saluran 5) Ekstrak dan keluarkan elemen