Lecteur RSS AJAX
Lecteur RSS pour lire les flux RSS.
Lecteur RSS AJAX
Dans l'exemple suivant, nous allons démontrer un lecteur RSS à travers lequel le contenu RSS est chargé sans actualiser la page Web :
.
Explication des exemples - Page HTML
Lorsque l'utilisateur sélectionne un certain élément dans la liste déroulante au-dessus du flux RSS, une fonction nommée "showRSS()" sera exécutée. Cette fonction est déclenchée par l'événement "onchange" :
<html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</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>
la fonction showRSS() effectuera les étapes suivantes :
check Y a-t-il un flux RSS sélectionné ?
Créer un objet XMLHttpRequest
Créer une fonction à exécuter lorsque la réponse du serveur est prêt
Envoyer une requête au fichier sur le serveur
Veuillez noter le paramètre (q) ajouté à la fin de l'URL (contient le contenu de la liste déroulante)
Fichier PHP
Fichier rss_demo.xml.
La page du serveur appelée ci-dessus via JavaScript est un fichier PHP nommé "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>"); } ?>
Lorsque le flux RSS Lorsqu'une requête est envoyé depuis JavaScript vers un fichier PHP, ce qui se passe est :
Vérifiez quel flux RSS est sélectionné
Créez un nouvel objet XML DOM
Charger le document RSS dans une variable XML
Extraire et sortir les éléments de l'élément de canal
Extraire et sortir l'élément de l'élément item
Tutoriels vidéo recommandés : "Tutoriel AJAX"http://www. /course/list/25.html