E adesso faremo proprio quanto dichiarato nel titolo , ossia una guida su come creare un lettore di Feed RSS. E per fare questo utilizzeremo i linguaggi di programmazione PHP e Ajax e ovviamente un pizzico di HTML. Che cosa sia un Feed presumo lo sappiate meglio di me, per ogni buon conto in caso contrario potete sempre leggere le guide che vi lascio in questa pagina.
Lettore di RSS Feed Reader
Entriamo nello specifico di quello che andremo a fare . Utilizzeremo due file. Nel primo file ci metteremo il codice html che ci permetterà di selezionare un feed piuttosto che un altro e la tecnologia utilizzata sarà AJAX in modo tale che non appena avrete fatto la vostra selezione apparirà immediatamente sotto il vostro RSS Feed.
Mentre nel secondo file semplicemente metteremo il codice PHP che ci permetterà di fare il parsing di un feed RSS.
Come potete vedere non è nulla di particolarmente complicato.
Questo è il file index.php
<html> <head> <script> function showRSS(str) { if (str.length==0) { document.getElementById("rssOutput").innerHTML=""; return; } if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (this.readyState==4 && this.status==200) { document.getElementById("rssOutput").innerHTML=this.responseText; } } xmlhttp.open("GET","leggirssfeed.php?q="+str,true); xmlhttp.send(); } </script> <title>Lettore Feed RSS Reader PHP Ajax</title> </head> <body> <form> <select onchange="showRSS(this.value)"> <option value="">Selezione una fonte da cui leggere le Notizie:</option> <option value="PHP">Noirsolutions PHP</option> <option value="WP">Noirsolution WordPress</option> </select> </form> <br> <marquee direction="up" vspace="50" scrollamount="5" height="500" width="600"> Lettore Feed Rss <div id="rssOutput">.....</div> </marquee> </body> </html>
Che come potete vedere è composto da ajax e html . Vi chiede di fare una selezione nello specifico chiediamo se volete leggere notizie di PHP oppure notizie di WordPress. Come potete vedere ho aggiunto qualche elemento html per renderlo scorrevole (marquee) ma nulla di più. Il tutto viene quindi passato all’Ajax che controlla lo status e invia una richiesta al file leggirssfeed.php che è il seguente
<?php //prendi il parametro q dal sito $q=$_GET["q"]; //vedi quale selezione hai scelto. if($q=="PHP") { $xml=("https://www.noirsolutions.net/php/feed/"); } elseif($q=="NBC") { $xml=("www.noirsolutions.net/wordpress-italia/feed/"); } $xmldocumento = new DOMDocument(); $xmldocumento->load($xml); //prendi elemento feed "<channel>" $canale=$xmldocumento->getElementsByTagName('channel')->item(0); $canale_title = $canale->getElementsByTagName('title') ->item(0)->childNodes->item(0)->nodeValue; $canale_collegamento = $canale->getElementsByTagName('link') ->item(0)->childNodes->item(0)->nodeValue; $canale_descrizione = $canale->getElementsByTagName('description') ->item(0)->childNodes->item(0)->nodeValue; //mostra in output gli elementi relativi al sito echo("<p><a href='" . $canale_collegamento . "'>" . $canale_title . "</a>"); echo("<br>"); echo($canale_descrizione . "</p>"); //mostra in ouutput i feed raccolti $x=$xmldocumento->getElementsByTagName('item'); for ($i=0; $i<=2; $i++) { $item_title=$x->item($i)->getElementsByTagName('title') ->item(0)->childNodes->item(0)->nodeValue; $item_collegamento=$x->item($i)->getElementsByTagName('link') ->item(0)->childNodes->item(0)->nodeValue; $item_descrizione=$x->item($i)->getElementsByTagName('description') ->item(0)->childNodes->item(0)->nodeValue; echo ("<p><a href='" . $item_collegamento . "'>" . $item_title . "</a>"); echo ("<br>"); echo ($item_descrizione . "</p>"); } ?>
Il risultato finale lo potete trovare su Esempio Lettore .
E’ ovvio che da qui potete fare tutte le aggiunte e personalizzazioni del caso. Per problemi lasciate pure un messaggio che vi risponderò.