Unire due feed rss con SimplePie e PHP

In alcune situazioni risulta molto pratico poter fondere due o più feed rss in modo da facilitarne l’accesso frequente. In questo modo possiamo leggere un unico script e prendere tutti i contenuti.

Una strada percorribile è quella di utilizzare la libreria SimplePie che mette a disposizione diversi strumenti e comandi per unire due è più feed RSS.

Vediamo in pratica come procedere:

Questa prima parte iniziale del file serve per comunicare ai browser il tipo di file che dovranno aspettarsi e quindi come dovrà essere interpretato

<?php echo ‘<?xml version=”1.0″ encoding=”UTF-8″?>’; ?>
<em id="__mceDel"><rss version=”2.00″>
<channel>
<title>Feed Demo</title>
<link>http://www.example.org</link>
<description>
A demo of SimplePie’s feed-merging capabilities.
</description>
<language>it-it</language>

In questa seconda parte di codice andiamo a richiamare la libreria e a specificare i due feed da fondere più la durata della cache, questo per evitare di dover effettuare l’operazione ad ogni refresh della pagina, il nostro server ce ne sarà grato ;-)

<?php
include_once(‘./lib/php/simplepie.inc’); // Includiamo SimplePie
$feed = new SimplePie(); // Creiamo un'istanza di SimplePie
// Load the feeds
$feed->set_feed_url(array(
‘http://feeds.feedburner.com/Webmaster-source’,
‘http://feeds.feedburner.com/ProbloggerHelpingBloggersEarnMoney’
));
$feed->set_cache_duration (600); // Impostiamo il cache time
$feed->enable_xml_dump(isset($_GET['xmldump']) ? true : false);
$success = $feed->init(); // Inizializziamo SimplePie
$feed->handle_content_type(); // Inviamo il character encoding
?>

Infine stampiamo l’output di tutte le voci dei due feed secondo la sintassi solita delle regole di un XML RSS standard e chiudiamo gli ultimi tag

<?php if ($success) {
$itemlimit=0;
foreach($feed->get_items() as $item) {
if ($itemlimit==10) { break; }
?>
<item>
<title><?php echo $item->get_title(); ?></title>
<link><?php echo $item->get_permalink(); ?></link>
<description>
<?php echo $item->get_description(); ?>
</description>
</item>
<?
$itemlimit = $itemlimit + 1;
}
}
?>
</channel>
</rss>
Unire due feed rss con SimplePie e PHP
1 (20%) 1 voto[i]
Archiviato in

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *