Lector RSS en PHP con cache
Con la siguiente función para leer RSS puedes establecer algunos valores:
[php]
function rssReader($url,$maxItems=15,$begin="",$end=""){
$rss = simplexml_load_file($url);
$i=0;
if($rss){
$items = $rss->channel->item;
foreach($items as $item){
if($i==$maxItems) return $out;
else $out.=$begin.'<a href="’.$item->link.’" target="_blank" >’.$item->title.'</a>’.$end;
$i++;
}
}
return $out;
}
[/php]
forma de uso:
[php]
echo ‘<ul>’.rssReader(‘/feed/’,5,'<li>’,'</li>’).'</ul>’;
[/php]
Usando la cache con la clase fileCache:
[php]
function rssReader($url,$maxItems=15,$cache,$begin="",$end=""){
$cache= (bool) $cache;
if ($cache){
$cacheRSS= new fileCache();//seconds and path
$out = $cacheRSS->cache($url);//getting values from cache
}else $out=false;
if (!$out) { //no values in cache
$rss = simplexml_load_file($url);
$i=0;
if($rss){
$items = $rss->channel->item;
foreach($items as $item){
if($i==$maxItems){
if ($cache) $cacheRSS->cache($url,$out);//save cache
return $out;
}
else $out.=$begin.'<a href="’.$item->link.’" target="_blank" >’.$item->title.'</a>’.$end;
$i++;
}
}
}
return $out;
}
[/php]
Forma de uso RSS con cache:
[php]
echo ‘<ul>’.rssReader(‘/feed/’,5,true,'<li>’,'</li>’).'</ul>’;
[/php]
Basado en la forma convencional:
[php]
$url = "http://news.google.com/?ned=us&topic=t&output=rss";
$rss = simplexml_load_file($url);
if($rss){
echo ‘<h1>’.$rss->channel->title.'</h1>’;
echo ‘<li>’.$rss->channel->pubDate.'</li>’;
$items = $rss->channel->item;
foreach($items as $item){
$title = $item->title;
$link = $item->link;
$published_on = $item->pubDate;
$description = $item->description;
echo ‘<h3><a href="’.$link.’">’.$title.'</a></h3>’;
echo ‘<span>(‘.$published_on.’)</span>’;
echo ‘<p>’.$description.'</p>’;
}
}
[/php]