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 rafraîchir :
Sélectionnez un flux RSS :
Lisez les données RSS
Liste des données du flux RSS...
Explication des exemples - Page HTML
Lorsque l'utilisateur sélectionne un flux RSS dans la liste déroulante ci-dessus, un appel appelé " showRSS()" fonction. 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 :
Vérifier si un flux RSS est sélectionné
1) Créer un objet XMLHttpRequest
2) Créer une fonction qui s'exécute lorsque la réponse du serveur est prête
3) Envoyer une requête à un fichier sur le serveur
4) Notez les paramètres ajouté à la fin de l'URL (q ) (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>"); } ?>
Quand une demande de flux RSS est envoyée depuis JavaScript vers le fichier PHP, que se passe-t-il est :
1) Vérifier quel flux RSS est sélectionné
2) Créer un nouvel objet XML DOM
3) Charger le document RSS dans une variable XML
4) Extraire et sortir l'élément
de l'élément canal 5) Extraire et sortir l'élément