Pembaca RSS AJAX
Pembaca RSS untuk membaca suapan RSS.
AJAX RSS Reader
Dalam contoh berikut, kami akan menunjukkan pembaca RSS yang mana kandungan daripada RSS dimuatkan tanpa memuat semula halaman web Enter:
Penjelasan contoh - halaman HTML
Apabila pengguna memilih item tertentu dalam senarai lungsur turun di atas suapan RSS, fungsi bernama "showRSS()" akan dilaksanakan. 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 Adakah terdapat suapan RSS yang dipilih
Buat objek XMLHttpRequest
Buat fungsi untuk dilaksanakan apabila respons pelayan sedang sedia
Hantar permintaan kepada fail pada pelayan
Sila ambil perhatian parameter (q) yang ditambahkan pada hujung URL (mengandungi 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 suapan RSS Apabila permintaan dibuat dihantar daripada JavaScript ke fail PHP, apa yang berlaku ialah:
Semak suapan RSS mana yang dipilih
Buat objek XML DOM baharu
Muatkan dokumen RSS dalam pembolehubah xml
Ekstrak dan output elemen daripada elemen saluran
Ekstrak dan output elemen daripada elemen item
Tutorial video yang disyorkan: "Tutorial AJAX"http://www.php.cn /course/list/25.html