Home  >  Article  >  Backend Development  >  Related knowledge points about AJAX RSS reader

Related knowledge points about AJAX RSS reader

jacklove
jackloveOriginal
2018-05-07 15:08:151280browse

RSS reader is used to read RSS feeds. This article provides a basic explanation of it.

Explanation of examples - HTML page

When the user selects an RSS-feed in the above drop-down list, a function named "showRSS()" will be executed . This function is triggered by the "onchange" event:

<html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</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>

showRSS() function will perform the following steps:

Check whether any RSS-feed is selected

Create an XMLHttpRequest object

Create a function that is executed when the server response is ready

Send a request to a file on the server

Please note the parameter (q) added to the end of the URL ( Contains the contents of the drop-down list)

PHP file

File rss_demo.xml.

The server page called in the above paragraph through JavaScript is a PHP file named "getrss.php":

<?php// rss 文件$xml="rss_demo.xml";$xmlDoc = new DOMDocument();$xmlDoc->load($xml);// 从 "<channel>" 中读取元素$channel=$xmlDoc->getElementsByTagName(&#39;channel&#39;)->item(0);$channel_title = $channel->getElementsByTagName(&#39;title&#39;)->item(0)->childNodes->item(0)->nodeValue;$channel_link = $channel->getElementsByTagName(&#39;link&#39;)->item(0)->childNodes->item(0)->nodeValue;$channel_desc = $channel->getElementsByTagName(&#39;description&#39;)->item(0)->childNodes->item(0)->nodeValue;// 输出 "<channel>" 中的元素echo("<p><a href=&#39;" . $channel_link  . "&#39;>" . $channel_title . "</a>");echo("<br>");echo($channel_desc . "</p>");// 输出 "<item>" 中的元素$x=$xmlDoc->getElementsByTagName(&#39;item&#39;);for ($i=0; $i<=1; $i++) {    $item_title=$x->item($i)->getElementsByTagName(&#39;title&#39;)    ->item(0)->childNodes->item(0)->nodeValue;    $item_link=$x->item($i)->getElementsByTagName(&#39;link&#39;)    ->item(0)->childNodes->item(0)->nodeValue;    $item_desc=$x->item($i)->getElementsByTagName(&#39;description&#39;)    ->item(0)->childNodes->item(0)->nodeValue;    echo ("<p><a href=&#39;" . $item_link
    . "&#39;>" . $item_title . "</a>");    echo ("<br>");    echo ($item_desc . "</p>");}?>

When the RSS feed request is sent from JavaScript to PHP file, will happen:

Check which RSS feed is selected

Create a new XML DOM object

Load the RSS document in the xml variable

Extract and output elements from the channel element

Extract and output elements from the item element

This article explains the relevant knowledge points of the AJAX RSS reader. Please pay attention to more learning materials. You can watch it on php Chinese website.

Related recommendations:

PHP Example-AJAX Real-time Search Related Knowledge

About PHP Example-AJAX and XML Interaction

About PHP - Interaction between AJAX and MySQL

The above is the detailed content of Related knowledge points about AJAX RSS reader. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn