instância PHP leitor AJAX RSS
RSS Reader para leitura de RSS Feed.
AJAX RSS Reader
No exemplo abaixo, vamos demonstrar um leitor de RSS, através do qual os conteúdos são carregados a partir do RSS no caso de a página não é atualizada:
Do feed RSS lista de dados ...
Exemplos explicar - página HTML
Quando um usuário na lista drop-down acima, selecione um feed RSS, que realiza no chamado função "showRSS ()". Esta função pelo evento "onchange" é acionado:
<html> <head> <meta charset="utf-8"> <title>本教程(w3big.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>
função showRSS () executa as seguintes etapas:
- Verifique se há feed RSS é selecionado
- Criar objeto XMLHttpRequest
- Criar função quando o servidor está pronto para executar a resposta
- Arquivo no servidor para enviar pedidos
- Por favor, note adicionado ao final do parâmetro de URL (q) (contém o conteúdo da lista drop-down)
Arquivo PHP
Arquivo rss_demo.xml .
Acima desta página servidor chamado pelo JavaScript é chamado de arquivos PHP "getrss.php":
<?php // rss 文件 $xml="rss_demo.xml"; $xmlDoc = new DOMDocument(); $xmlDoc->load($xml); // 从 "<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; // 输出 "<channel>" 中的元素 echo("<p><a href='" . $channel_link . "'>" . $channel_title . "</a>"); echo("<br>"); echo($channel_desc . "</p>"); // 输出 "<item>" 中的元素 $x=$xmlDoc->getElementsByTagName('item'); for ($i=0; $i<=1; $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>"); } ?>
Quando um pedido é enviado a partir do feed RSS para o arquivo PHP JavaScript irá ocorrer:
- Verifique que é feed RSS selecionados
- Criar um novo objeto XML DOM
- documento XML Carregando RSS na variável
- Extraído do elemento de canal e no elemento de saída
- Extraído do elemento item e no elemento de saída