پی ایچ پی اور ایجیکس آر ایس ایس ریڈر

RSS ریڈر RSS فید کا پڑھنا کے لئے استعمال کیا جاتا ہے。

RSS اخبار اور اپدیتوں کو تیز طور پر دیکھنے کے لئے استعمال کیا جاتا ہے。

AJAX RSS ریڈر

درج ذیل AJAX مثال میں، ہم ایک RSS ریڈر کا مظاہرہ کریں گے، جس کے ذریعے RSS کا مواد ریفرش کئے بغیر ویب پیج میں لگایا جائے گا。

درج ذیل لیبلی میں ایک RSS نیوز سبسکریپشن منتخب کریں

کوئی RSS فید انتخاب کریں:

یہاں RSS فید لیا جائے گا。

یہ مثال تین عناصر شامل ہوتا ہے:

  • سادے ایچ تی ایم ال فرم
  • جاوااسکریپت
  • PHP 页面

ایچ تی ایم ال فرم

یہ ایچ تی ایم ال ویب پیج ہے۔ یہ ایک سادے ایچ تی ایم ال فرم اور ایک جاوا اسکریپٹ فائل کا لنک شامل ہے:

<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

همانطور که مشاهده می‌کنید، صفحه HTML بالا یک فرم ساده HTML با یک فهرست کشویی دارد.

طرح فرم اینگونه است:

  1. هنگامی که کاربر گزینه‌های فهرست کشویی را انتخاب می‌کند، یک رویداد فعال می‌شود
  2. هنگامی که رویداد فعال می‌شود، تابع showRSS() اجرا می‌شود

فرم زیر یک <div> به نام "rssOutput" است. این به عنوان جایگزین داده‌هایی که توسط تابع showRSS() بازگردانده می‌شود استفاده می‌شود.

جاوااسکریپت

کد جاوااسکریپت در "getrss.js" ذخیره می‌شود، که با مستند HTML متصل است:

var xmlHttp
function showRSS(str)
 { 
 xmlHttp=GetXmlHttpObject()
 if (xmlHttp==null)
  {
  alert ("بروزر درخواست HTTP را پشتیبانی نمی‌کند")
  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
 {
 // فائرفاکس، اپرا 8.0+، سافاری
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 // انترنت ایکسپلورر
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

توضیح مثال:

stateChanged() و GetXmlHttpObject کا فنکشن اور پی ایچ پی اور ایجیکس ریوکست ریوکست 这一节中的例子相同。

showRSS() 函数

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

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

PHP 页面

وسیع JavaScript کا سرور وسیع پیغام نامزد "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");
 }
elseif($q=="MSNBC")
 {
 $xml=("http://rss.msnbc.msn.com/id/3032091/device/rss/rss.xml");
 }
$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>");
 }
?>

توضیح مثال:

وقتی یک گزینه از جاوااسکریپت ارسال می‌شود، اتفاقی می‌افتد:

  1. PHP پیدا می‌کند که کدام فید RSS انتخاب شده است
  2. برای فید RSS انتخاب شده XML DOM ایجاد می‌کند
  3. عناصر از کانال‌های RSS پیدا کرده و نمایش می‌دهد
  4. عناصر سه اولین پروژه RSS را مرور کرده و آنها را نمایش می‌دهد