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中文網(wǎng)</title> <script> function showRSS(str) { if (str.length==0) { document.getElementById("rssOutput").innerHTML=""; return; } if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari 瀏覽器執(zhí)行代碼 xmlhttp=new XMLHttpRequest(); } else { // IE6, IE5 瀏覽器執(zhí)行代碼 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="">選擇一個(gè) RSS-feed:</option> <option value="rss">讀取 RSS 數(shù)據(jù)</option> </select> </form> <br> <div id="rssOutput">RSS-feed 數(shù)據(jù)列表...</div> </body> </html>
Fungsi Tayangan () akan melaksanakan langkah berikut:
· Semak sama ada terdapat RSS-FEED dipilih
Cipta objek xmlhttprequest
<創(chuàng)> · 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