La siguiente función muestra los títulos, junto con los enlaces, cargados de un RSS. Los titulares se muestran en forma de lista con lo que su aspecto es fácilmente personalizable mediante CSS y es muy apropiado para insertarlo, por ejemplo, en un blog "a modo de widget". De este modo podríamos tener en nuestro blog, y servir a nuestros visitantes, las ultimas actualizaciones del blog que deseemos. Si el XML al que intentamos acceder tarda más de 5 segundos en responder, la función carga una versión del RSS que previamente ha guardado en la carpeta "cache". La carpeta cache ha de tener permisos de escritura.
function lectorRSS($url,$elementos=6,$inicio=0) {
$cache_version = "cache/" . basename($url);
$archivo = fopen($url, 'r');
stream_set_blocking($archivo,true);
stream_set_timeout($archivo, 5);
$datos = stream_get_contents($archivo);
$status = stream_get_meta_data($archivo);
fclose($archivo);
if ($status['timed_out']) {
$noticias = simplexml_load_file($cache_version);
}
else {
$archivo_cache = fopen($cache_version, 'w');
fwrite($archivo_cache, $datos);
fclose($archivo_cache);
$noticias = simplexml_load_string($datos);
}
$ContadorNoticias=1;
echo "<ul>";
foreach ($noticias->channel->item as $noticia) {
if($ContadorNoticias<$elementos){
if($ContadorNoticias>$inicio){
echo "<li><a href='".$noticia->link."' target='_blank' class='tooltip' title='".utf8_decode($noticia->title)."'>";
echo utf8_decode($noticia->title);
echo "</a></li>";
}
$ContadorNoticias = $ContadorNoticias + 1;
}
}
echo "</ul>";
}
El siguiente ejemplo mostraría los títulos, con sus correspondientes enlaces, de 5 posts del feed de webintenta.com
lectorRSS('http://feeds.feedburner.com/webintenta/WVpB',5);







