PHP - Leggere RSS per creare news ticker scorrevoli
L’ RSS ( Really Simple Syndication ) è diventanto ormai uno dei più popolari formati per lo scambio di contenuti sul Web. E’ basato su XML, da cui non solo ha ereditato la semplicità e la flessibilità, ma anche la possibilità di portersi adattare a qualsiasi piattaforma ( Windows, Linux, ecc. ) .
Per questi motivi sul Web sono molte le guide che spiegano come “scrivere” RSS e mettere a disposizione di tutti i propri contenuti: d’altra parte sono poche quelle che spiegano come utilizzare questi fogli XML per arrichire il contenuto dei propri portali. L’esempio che vedremo spiega come sia possibile, utilizzando il PHP, adattare, leggere e integrare nel proprio sito contenuti distribuiti attraverso questo formato.
Questo articolo non si occupa della generazione di RSS, ma del loro utilizzo, perciò daremo per scontanto l’utilizzo di un codice RSS corretto. Il codice PHP che ci interessa è il seguente:
<table>
<?
/*
Con questa istruzione assegnamo alla variabile $feedUrl il link dell’RSS che per ipotesi supponiamo corretto
*/
$feedUrl = ‘http://dominio.com/link_rss.xml’;
/*
file_get_contents è una funzione php che legge il file all’interno di una stringa, in sostanza “raccoglie” tutto il contenuto del file in una stringa
*/
$rawFeed = file_get_contents($feedUrl);
/*
Questo è il passo principale del nostro frammento di codice: SimpleXmlElement fornisce un metodo semplice e facilmente utilizzabile per convertire un XML in un oggeto che può essere processato con le normali proprietà degli iteratori e degli array.
*/
$xml = new SimpleXmlElement($rawFeed);
/*
Itero sull’oggetto creato: ora posso semplicemente utilizzare i valori di ogni “elemento” di contenuto dell’RSS. Nel nostro esempio supponiamo che l’RSS metta a disposizione l’URL di una immagine, un link, un titolo, una descrizione per ogni riga di contenuto del Feed.
*/
foreach ($xml->channel->item as $item) {
echo “<tr>
<td>
<img src=’”.$item->image.”‘ />
</td>
<td >
<strong><a href=’”.$item->link.”‘>”.htmlspecialchars_decode($item->title).”</a></strong>
<br />”.$item->description.”
</td>
</tr>
<tr><td> </td></tr>
“;
}
?>
</table>
Come è ormai nostra abitudine, abbiamo ampiamente commentato direttamente il codice, in modo da facilitarne l’appredimento. In pochissimi passi, abbiamo recuperato e integrato completamente nel nostro portale contenuto multimediale (testo, immagini, ecc.) provenite da una fonte esterna. Proprio questa è la forza di questa tecnologia: la semplicità e la leggerezza. In pochi passi, abbiamo creato una tabella, in cui ad ogni riga corrisponde un elemento del nostro RSS di esempio.
Per aggiugere l’effetto scorrevole, è sufficiente utilizzare il tag <marquee>, che permette tra le altre cose anche di modificare la velocità di scorrimento. Vediamo un esempio:
<marquee behavior=”scroll” direction=”up” scrollAmount=”1″ scrollDelay=”75″
onMouseOver=”this.stop()” onMouseOut=”this.start()”>/marquee>
Con questa riga di codice creiamo l’effetto a scorrimento: possiamo utilizzare l’attributo “direction” per specificare la direzione, l’attributo “scrollDelay” per specificare la velocità (valori più bassi = velocità maggiore) e gli attributi “onMouseOver” e “onMouseOut” con le realtive funzioni “stop()” e “start()” per far sì che lo scrolling si fermi quando il mouse è sopra l’elemento ma riprenda non appena il mouse esce dall’elenco degli elementi.
Per chi volesse scaricare il codice, può comodamente cliccare qui.


24 Maggio 2008 alle 10:16
[…] tempo fa, abbiamo visto come leggere un feed RSS in PHP. In questo articolo vederemo come leggere non solo i feed, ma qualsiasi file .xml in ASP. Il […]