PHP contoh AJAX RSS reader
RSS Reader untuk membaca RSS Feed.
AJAX RSS Reader
Pada contoh di bawah, kita akan menunjukkan pembaca RSS, di mana isinya diambil dari RSS dalam kasus halaman tidak refresh:
RSS-feed daftar data ...
Contoh menjelaskan - Halaman HTML
Bila pengguna dalam daftar drop-down di atas, pilih RSS-feed, ia melakukan bernama "showRSS ()" fungsi. Fungsi ini dengan acara "onchange" dipicu:
<html> <head> <meta charset="utf-8"> <title>本教程(w3big.com)</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>
showRSS () fungsi melakukan langkah-langkah berikut:
- Periksa RSS feed dipilih
- Buat XMLHttpRequest objek
- Membuat fungsi ketika server siap untuk melakukan respon
- Berkas pada server untuk mengirim permintaan
- Harap perhatikan ditambahkan ke akhir dari parameter URL (q) (berisi isi dari daftar drop-down)
file PHP
File rss_demo.xml .
Atas halaman server ini disebut oleh JavaScript yang disebut "getrss.php" file 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>"); } ?>
Ketika permintaan dikirim dari RSS feed ke file PHP JavaScript akan terjadi:
- Periksa yang dipilih RSS feed
- Membuat objek XML DOM baru
- Dokumen xml memuat RSS di variabel
- Diekstrak dari elemen saluran dan elemen output
- Diekstrak dari unsur barang dan elemen output