destacados

Gabriel Da Silva

Portafolio del ilustrador y director de arte brasileño, aunque afincado en Madrid, Gabriel Da Silva.

B&W Helmut Newton

Selección de fotografías en blanco y negro de uno de los fotógrafos más conocidos de las últimas décadas, Helmut Newton.

Judith Erwes

Fotógrafa afincada en Londres con un estilo que combina la moda, el humor y la estética retro.

Jody Rogac

Nacida en Inglaterra y criada en Canadá, Jody Rogac en la actualidad vive y trabaja en Brooklyn. Sus trabajo ha obtenido diversos galardones.

Publicaciones

Función para leer y mostrar un RSS con PHP

, , 05/08/2010 16:20:31

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);
Páginas: 1
comentarioscomentarios