PHP နှင့် AJAX RSS ကြည့်တင်း

RSS ကြည့်တတ်သည့် ဖိုင်ကို အသုံးပြုသည်

RSS သည် သတင်းနှင့် အသစ်အချက်အလက်များကို အသားပြည့်စုံအားထုတ်သည်

AJAX RSS ကြည့်တတ်သည့် ဖိုင်

AJAX အခြေခံအမှတ်ပေါင်းမှာ အခြေခံ 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 表单

正如您看到的,上面的 HTML 页面包含一个简单的 HTML 表单,其中带有一个下拉列表框。

表单是这样工作的:

  1. 当用户选择下拉框中的选项时,会触发一个事件
  2. 当事件触发时,执行 showRSS() 函数

表单下面是名为 "rssOutput" 的一个

。它用作 showRSS() 函数所返回的数据的占位符。

JavaScript

JavaScript ကုဒ္ "getrss.js" တွင် သို့မဟုတ် သတင်း စာတမ်း နှင့် ချိတ်ဆက်ပါ:

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)
 {
 // အင်တာနက် ကွန်ပျူတာအက်စ်
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

အခြား အော်ဆန်းလေး အကြောင်းကြား

stateChanged() နှင့် GetXmlHttpObject ပုံစံ နှင့် PHP နှင့် AJAX အင်ဂျင်နီယာ အခြေချင်း ပြုစုခြင်း များ နှင့် အတူ ဖြစ်သည်.

showRSS() လုပ်ငန်း

အောက်ပါ ကျန်းမာရေး အချင်း ကျန်းမာရေး ရွေးချယ်ခဲ့ သောအခါ ပြင့်တင်လုပ်ဆောင်သည်:

  1. ပြင်ဘာ ပေးပို့သော url ကို အသုံးပြုပြီး (ဖိုင်အမည်)
  2. အခြေချင်း (q) ပြင့်တင်ပြီး အနာဂတ် အရ ဖြစ်သော ကျန်းမာရေး တင်ပြပြီး
  3. အားလုံးစံချင်း စက္ကူး တစ်ခု ပြင့်တင်ပြီး ပြင်ဘာ ဖုံးကွယ်ခြင်း ကို ကာကွယ်ပြီး
  4. GetXmlHttpObject လုပ်ငန်းကို ခေါ်ဆိုပြီး အားလုံးစံချင်း XMLHTTP လက်မှတ် ကို ဖွင့်ပြီး အားလုံးစံချင်း stateChanged လုပ်ငန်း ကို အခြေခံပြီး ဖွင့်လုပ်သည်
  5. အနာဂတ်ကို ဖော်ထုတ်ရန် ဖြစ်သည် XMLHTTP
  6. HTTP ချက်လုပ်ခြင်း ပေးသော ပြင်ဘာ

PHP စာရင်း

သတင်းပို့လုပ်ဆောင်ရာ စက်တင်သုံးသော ပြင်ဘာ ဖြစ်သည် "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 က အသိအမှတ် ဖိုးလုံး ကို ရှာဖွေ
  2. အသိအမှတ် ဖိုးလုံး ကို ရှာဖွေ ရန် အဆိုပါ RSS feed ကို ဖွဲ့စည်း
  3. RSS ခုံ မှ အရာများ ကို ရှာဖွေ နှင့် ထုတ်ပြန်
  4. အခြား ၃ ခု အဆိုပါ RSS ပစ္စည်း များ တွင် အရာများ ကို အသုံးပြု၍ ပြန်လည် ထုတ်ပြန်