Ví dụ PHP – AJAX RSS Reader

An Reader RSS được sử dụng để đọc tin RSS.

AJAX RSS Reader

Ví dụ sau đây sẽ chứng minh một trình đọc RSS, nơi mà các RSS feed-được nạp vào một trang web mà không cần tải lại:

Chọn một RSS-feed: Google News MSNBC News

RSS feed-sẽ được liệt kê ở đây …

Ví dụ giải thích – Các trang HTML

Khi người dùng lựa chọn một RSS-feed trong danh sách thả xuống ở trên, một chức năng được gọi là “showResult ()” được thực thi.Chức năng này được kích hoạt bởi các sự kiện “onchange”:

<html>
<head>
<script type=”text/javascript”>
function showRSS(str)
{
if (str.length==0)
{
document.getElementById(“rssOutput”).innerHTML=””;
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for 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=””>Select an RSS-feed:</option>
<option value=”Google”>Google News</option>
<option value=”MSNBC”>MSNBC News</option>
</select>
</form>
<br />
<div id=”rssOutput”>RSS-feed will be listed here…</div>
</body>
</html>

Các showResult () chức năng nào sau đây:

  • Kiểm tra xem một RSS-nguồn cấp dữ liệu được chọn
  • Tạo một đối tượng XMLHttpRequest
  • when the server response is ready Tạo chức năng được thực hiện khi đáp ứng máy chủ đã sẵn sàng
  • Gửi yêu cầu giảm đến một tập tin trên máy chủ
  • Chú ý rằng một tham số (q) được thêm vào URL (với các nội dung của danh sách thả xuống.

Các tin PHP

Các trang trên máy chủ gọi là do JavaScript trên là một tập tin PHP gọi là “getrss.php”:

<?php
//get the q parameter from URL
$q=$_GET[“q”];//find out which feed was selected
if($q==”Google”)
{
$xml=(“http://news.google.com/news?ned=us&topic=h&output=rss&#8221;);
}
elseif($q==”MSNBC”)
{
$xml=(“http://rss.msnbc.msn.com/id/3032091/device/rss/rss.xml&#8221;);
}

$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);

//get elements from “<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;

//output elements from “<channel>”
echo(“<p><a href='” . $channel_link
. “‘>” . $channel_title . “</a>”);
echo(“<br />”);
echo($channel_desc . “</p>”);

//get and output “<item>” elements
$x=$xmlDoc->getElementsByTagName(‘item’);
for ($i=0; $i<=2; $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>”);
}
?>

Khi một RSS feed-được gửi từ các JavaScript, sau khi xảy ra:

  • Kiểm tra thức ăn đã được chọn
  • Tạo một đối tượng DOM XML mới
  • Nạp tài liệu RSS trong biến xml
  • Trích xuất và sản lượng các yếu tố từ các phần tử kênh
  • Trích xuất và sản lượng các yếu tố từ các phần tử mục

Về vdhungbg
Tin tuc cap nhat - moi luc - moi noi

Gửi phản hồi

Please log in using one of these methods to post your comment:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: