Tal vez el título no te suene a nada y si te digo que un parser es un módulo que sirve para hacer el parseo imagino que suena a chino; pero es más simple de lo que parece.
El parseo sirve para convertir una entrada de texto en un conjunto de datos que pueda ser procesado, llevado al tema de RSS este no es más que un archivo XML con una estructura ya establecida y delimitada que vamos a convertir en un array para poder manejarlo con esto podriamos por ejemplo:
- Mostrar miniposts de twitter en nuestra página web PHP
- Mostrar noticias de una web externa en la nuestra y que se actualicen automaticamente
- Mostrar los últimos post de cualquier blog
- Finalmente mostrar cualquier información de RSS en nuestra página web con el formato que deseemos
Implementado el parser
Lo bueno es que no nos vamos a romper la cabeza inventando un parser sólo vamos a implementar una clase ya diseñada para dicho fin, en este caso probemos con lastRSS y quedaría nuestro código de la siguiente forma:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <?php // Incluimos lastRSS.php include './lastRSS.php'; // Damos la ruta de nuestra fuente RSS $url_flux_rss = 'http://www.pcinpact.com/include/news.xml'; $limite = 10; // nombre d'actus à afficher // Creamos el objeto lastRSS $rss = new lastRSS; // Configuramos lastRSS $rss->cache_dir = './cache'; // carpeta del cache $rss->cache_time = 3600; // frecuencia del cache (en segundos) $rss->date_format = 'd/m'; // formato de fecha (basado en la funcion date() ) $rss->CDATA = 'content'; // retiro de la etiqueta CDATA // leemos la fuente RSS if ($rs = $rss->get($url_flux_rss)) { for($i=0;$i<$limite;$i++) { // Mostramos los datos echo '<strong>'.$rs['items'][$i]['pubDate'].'</strong> · <a href="'.$rs['items'][$i]['link'].'">'.$rs['items'][$i]['title'].'</a><br />'; } } else { die ('RSS no funka'); } ?> |
Como vemos es muy simple ya que la clase se encarga de la parte complicada, podriamos darle el formato que quisieramos modificando esta linea:
1 | echo '<strong>'.$rs['items'][$i]['pubDate'].'</strong> · <a href="'.$rs['items'][$i]['link'].'">'.$rs['items'][$i]['title'].'</a><br />'; |
Podriamos usar h1, h2, p, ul, li… y asi darle un mejor formato al resultado obtenido.
Hola, me funciona en local pero al subirlo al servidor no va. ¿Sabes por qué podría ser?
Gracias
Si me dices el mensaje de error te puedo dar alguna pista, aunque suele darse que en localhost la carpeta cache es escribible pero al subirla ya no, prueba cambiándole los permisos a 777
No da error, simplemente muere en ‘RSS no funka’, cambié los permisos en la carpeta cache a 777 asique eso no es.
Creo que tiene que ver con que mi hosting no me deja abrir ficheros externos con fopen, ¿podria ser por eso?
Podría ser eso o que no este habilitado el modulo CURL de PHP, parece que estas usando una cuenta de hosting gratuita si no lo es deberías enviar un ticket support o pensa en cambiar de hosting por no soportar opciones tan básicas.
No el hosting no es gratuito, y ya es la segunda vez que quiero hacer algo y me encuentro con este problema… ¿podrias recomendarme algun servicio de hosting? Creo que al final voy a tener que mudarme.
Y gracias por todo.