PHP and AJAX RSS Reader

RSS Reader ຂອງ PHP ໃຊ້ສຳລັບອ່ານ RSS Feed:

RSS ອະນຸຍາດຄົ້ນຄວ້າຂ່າວ ແລະ ການປັບປຸງຢ່າງຫ້າວ:

AJAX RSS Reader

AJAX RSS Reader: ໃນຄະນະນີ້, ພວກເຮົາຈະສະແດງ RSS Reader, ເຊິ່ງວ່າສິ່ງຂອງ RSS ຈະບັນທຶກເຂົ້າໄປໃນເວັບໄຊບໍ່ຕ້ອງຂັບເຄື່ອງຫົວໜ້າບໍ່:

ລົງຄະແນນ RSS ຂ່າວທີ່ນັ້ນໃນລະບົບບັນທຶກຕິດຕາມໃນລາຍການລາຍການ

ລົງຄະແນນ RSS-Feed:

ລະບຸ RSS Feed ທີ່ນັ້ນ

ຄວາມທີ່ມີໃນຄະແນນນີ້ຢູ່ນັ້ນມີສາມຢ່າງ:

  • HTML ຟອມທີ່ລະອຽດ
  • JavaScript
  • PHP 页面

HTML ຟອມ

ນີ້ແມ່ນຫົວໜ້າ HTML. ມັນກວມເອົາຫົວໜ້າ HTML ທີ່ລະອຽດລາຍການ ແລະ ຢ່າງເຊື່ອມຕໍ່ JavaScript:

<html>
<head>
<script type="text/javascript" src="getrss.js"></script>
</head>
<body>
<form> 
Select an RSS-Feed:
<select onchange="showRSS(this.value)">
<option value="Google">Google News</option>
<option value="MSNBC">MSNBC News</option>
</select>
</form>
<p><div id="rssOutput">
<b>RSS Feed will be listed here.</b></div></p>
</body>
</html>

ຄວາມຄິດທີ່ສະແດງ - HTML Form

ຄືທີ່ທ່ານເຫັນຢູ່ດ້ານລຸ່ມຂອງເວັບໄຊ HTML ມີຟອມແບບລະບົບລະບົບ HTML ທີ່ມີອິດສະຫລະທະບັດລົງແລ້ວ

ວຽກງານຂອງຟອມແບບ

  1. ຖ້າຜູ້ຄົນເລືອກອິດສະຫລະພາບຈາກອິດສະຫລະທະບັດລົງແລ້ວຈະກະຕຸ້ນເຫດການ
  2. ຖ້າເຫດການຖືກກະຕຸ້ນໃຫ້ດຳເນີນການ showRSS()

ຢູ່ດ້ານລຸ່ມຂອງຟອມແບບນີ້ມີ <div>ຊື່ "rssOutput". ມັນຖືກໃຊ້ຄືການຄຳປະກອບຂອງຂໍ້ມູນທີ່ກັບຄືນຈາກການໃຊ້ showRSS()

JavaScript

JavaScript 代码ບັນຈຸໃນ "getrss.js" ແລະກັບບັນນາທິການ HTML

var xmlHttp
function showRSS(str)
 { 
 xmlHttp = GetXmlHttpObject()
 if (xmlHttp == null)
  {
  alert("Browser does not support HTTP Request")
  return
  }
 var url = "getrss.php"
 url = url + "?q=" + str
 url = url + "&sid=" + Math.random()
 xmlHttp.onreadystatechange = stateChanged 
 xmlHttp.open("GET", url, true)
 xmlHttp.send(null)
 }
function stateChanged() 
 { 
 if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
  { 
  document.getElementById("rssOutput")
  .innerHTML = xmlHttp.responseText 
  } 
 }
function GetXmlHttpObject()
{
var xmlHttp = null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp = new XMLHttpRequest();
 }
catch (e)
 {
 // Internet Explorer
 try
  {
  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

ຄວາມອະທິບາຍວິຊາ

stateChanged() ແລະ ການໃຊ້ XMLHTTPObject ພວກມັນກັບ PHP and AJAX Request 这一节中的例子相同。

showRSS() 函数

每当在下拉框中选择选择时,该函数就会执行:

  1. 定义发送到服务器的 url (文件名)
  2. 把参数 (q) 添加到 url,参数内容是下拉框中的被选项
  3. 添加一个随机数,以防止服务器缓存文件
  4. 调用 GetXmlHttpObject 函数来创建 XMLHTTP 对象,并告知该对象在触发一个改变时去执行 stateChanged 函数
  5. 通过给定的 url 来打开 XMLHTTP
  6. 把 HTTP 请求发动到服务器

PHP 页面

调用 JavaScript 代码的服务器页面是名为 "getrss.php" 的 PHP 文件:

load($xml);
//get elements from ""
$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 ""
echo("

" . $channel_title . ""); 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>"); } ?>

ຄວາມອະທິບາຍວິຊາ

ຈະເກີດຂຶ້ນເມື່ອຕົວເລືອກຈະສົ່ງຕໍ່ JavaScript

  1. PHP ຄົ້ນຫາ RSS feed ທີ່ໄດ້ເລືອກ
  2. ສ້າງ XML DOM Object ສຳລັບ RSS feed ທີ່ເລືອກ
  3. ຄົ້ນຫາ ແລະ ສະແດງອອກສິ່ງຈາກ RSS Feed
  4. ກວດສອບພັກ RSS ທີ່ສາມຄັ້ງທຳອິດ ແລະ ການສະແດງອອກ