Maison >php教程 >php手册 >PHP和AJAX的RSS阅读器

PHP和AJAX的RSS阅读器

WBOY
WBOYoriginal
2016-05-25 16:41:511474parcourir

PHP和AJAX的RSS阅读器,RSS阅读器是用来读取RSS信息,允许快速的RSS浏览新闻和更新.

AJAX的RSS阅读器:在AJAX以下例子,我们将展示一个RSS阅读器的内容从RSS是载入网页无需刷新.

在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>

例如解释-的H TML表单正如你可以看到,HTML网页上面载有一个简单的HTML表单的下拉框,作品的形式像这样,事件触发时,用户选择一个选项在下拉框中当事件触发的功能要求showRSS ()被处决,下面的形式是一个

所谓的" 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 ()和GetXmlHttpObject职能是一样的PHP的AJAX推荐的篇章,该showRSS ()函数每一次的选择是选择在输入外地执行这一职能如下:界定了网址(档)传送给服务器 添加一个参数( Q )的网址与选定的选项从下拉框中 添加一个随机数字,以防止服务器使用快取档案,吁请GetXmlHttpObject函数创建一个XMLHTTP物件,并讲述了对象执行的功能要求时stateChanged变化是触发 开幕XMLHTTP物件与特定网址,发送一个HTTP请求到服务器,PHP页面网页服务器要求的JavaScript代码是一个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.phprm.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(&#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;
//output elements from "<channel>"
echo ("<p><a href=&#39;" . $channel_link . "&#39;>" . $channel_title . "</a>");
echo ("<br />");
echo ($channel_desc . "</p>");
//get and output "<item>" elements
$x = $xmlDoc->getElementsByTagName(&#39;item&#39;);
for ($i = 0; $i <= 2; $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>");
}
?>


本文地址:

转载随意,但请附上文章地址:-)

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn