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


daripada elemen item
Meneruskan pembelajaran
||
<?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>"); } ?>
  • Cadangan kursus
  • Muat turun perisian kursus