El rincón de JMACOE

Lector RSS en PHP con cache

Con la siguiente función para leer RSS puedes establecer algunos valores:

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;
    }


forma de uso:

echo '<ul>'.rssReader('/feed/',5,'<li>','</li>').'</ul>';

Usando la cache con la clase fileCache:

 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;
    }

Forma de uso RSS con cache:

echo '<ul>'.rssReader('/feed/',5,true,'<li>','</li>').'</ul>';

Basado en la forma convencional:

 $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>';
        }
    }

Comparte y diviertete: