El post de hoy es un pequeño ejercicio que tenía perdido por los teras de documentos que tengo almacenados en los discos. Se trata de un lector feed muy sencillo, que nos devuelve un listado de publicaciones en el feed de la página que le indiquemos en la variable correspondiente. Para hacerlo un poco más «interesante», supongo que fue por eso por lo que además le añadí dos botones que mediante Jquery actualiza la página de manera inmediata (para recibir nuevas actualizaciones del feed, en el caso de las haya y otro botón (que realmente no sé por que lo puse) que refresca la página pasados cinco segundos mediante setTimeout().
Como se podrá ver en las líneas que siguen, el código tiene la idea, pero es ampliamente mejorable en muchas cosas (pero en su día me sirvió para entender un poco mejor el funcionamiento de simplexml_load_file. Esta función viene a convertir el documento correcto XML del fichero dado en un objeto, con lo que después podremos trabajar a nuestro gusto mediante los bucles correspondientes.
Para el caso que me ocupa en estos momentos, insisto en que se trata de un ejemplo tan básico que ni siquiera resulta bonito de ver por lo que si alguien quiere lo invito a dejarlo más bonito y a implementar las mejoras que crea convenientes. La opción de poder introducir la URL del feed mediante teclado, es algo que este código necesita como el comer (pero la verdad es que no me apetece escribirlo ahora…) El resultado final con el código que presentaré a continuación vendría a ser algo parecido a lo que a continuación muestro.
Código para el feed con PHP y Jquery
<!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8"> <title>RSS entreunosyceros</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script> $(document).ready(function(){ $("#ref_botn").click(function(){ location.reload(); }); $("#ref_en_cinco").click(function(){setTimeout(function() { location.reload() },5000); }); }); </script> </head> <body> <?php $long_descripcion=250; $num_noticias=4; $n=0; $noticias = simplexml_load_file('https://entreunosyceros.net/feed/'); echo '<h1>ENTREUNOSYCEROS.NET</h1>'; foreach ($noticias as $noticia) { foreach($noticia as $reg){ if($reg->title!=NULL && $reg->title!='' && $reg->description!=NULL && $reg->description!='' && $n<$num_noticias){ ?> <div class="noticia"> <?php echo '<h4><a href="'.$reg->link.'" target="_blank">'.$reg->title.'</a></h4>'; if(strlen($reg->description)>$long_descripcion) echo '<p>'.substr($reg->description,0,$long_descripcion).'... <a href="'.$reg->link.'" target="_blank">Leer más.</a></p>'; else if ($reg->description==NULL || $reg->description==''){ } else echo '<p>'.$reg->description.'</p>'; $n++; ?> </div><?php } } } ?> <button id="ref_botn">Refrescar página ahora!</button> <button id="ref_en_cinco"> Esperar 5 segundos, y refrescar</button> </body>
El ejemplo funcional del ejercicio se puede ver en este enlace. Decir que cabe la posibilidad de que salte un aviso de que es necesario que se confirme que se es humano, pero se confirma y ya está … que todos los problemas sean esos.