Libro de Visitas Gratis
Inicio | Directorio de Páginas | Diseño Gráfico | Gadgets | Posicionamiento | Webmasters| Buscador de Artículos | Glosarios

Lector RSS usando la libreria MagpieRSS

Añade Tu Web Al Directorio de NocionDigital.com
Después de aprender a recorrer archivos XML con nuestro propio código en el artículo "Recorrer archivo XML, para lector RSS usando la extensión SimpleXML" y usando SimpliXML, es hora de utilizar una libreria específica que nos facilitará esta tarea.

MagpieRSS es un parser RSS programado en PHP que RSS 0.9, 1.0, RSS 2.0, y Atom. Funciona desde PHP 4.2.0 y soporte XML (expat), o PHP5 con libxml2.

Podemos descargar los ficheros desde la siguiente dirección: http://magpierss.sourceforge.net/

Los archivos principales que necesitamos son

- rss_fetch.inc
- rss_parser.inc
- rss_cache.inc
- rss_utils.inc

y el directorio "extlib", y copiarlos en un directorio que en nuestro caso hemos llamado "magpierss" y lo hemos alojado en la raiz del directorio de nuestra web.

Para hacer la llamada a la libreria debems poner el siguiente código en el archivo que queremos que tenga la información del RSS

require_once('magpierss/rss_fetch.inc');
?>


Ahora tenemos que hacer la llamada al archivo XML, en este caso llamamos un archivo PHP que genera este archivo. El contenido lo guardaremos en una variable, en nuestro caso llamada rss.

$rss = fetch_rss("http://www.xlwebmasters.com/rss.php");
?>


La variable con el contenido contiene un array de los elementos del XML sindicados y información sobre el sitio:

* $rss->channel["title"] Nombre del sitio
* $rss->channel["description"] Descripción del sitio
* $rss->channel["link"] URL del sitio sindicado

Ahora solo falta acceder a los elementos del XML, lo podemos hacer usando $rss->items
Aquí recorreremos todo el archivo con un foreach

foreach ($rss->items as $item)
{
echo "".$item["title"]."
".$item["description"]."
";
}


El código completo seria

require_once('magpierss/rss_fetch.inc');
$rss = fetch_rss("http://www.xlwebmasters.com/rss.php");
foreach ($rss->items as $item)
{
echo "".$item["title"]."
".$item["description"]."
";
}
?>


Especificar el número de items a mostrar

Un archivo XML puede contener un número muy grande de items que puede que no nos interese mostrar ya que nosotros solo queremos mostrar por ejemplo los diez primeros. Usando array_slice solo cogeremos el número deseado de items que queremos.

$items = array_slice($rss->items, 0, 10);
?>


Utilizar la cache

Para ganar velocidad en la carga del sitio web es importante guardar en cache los contenidos leidos de los XML. Esta libreria nos ofrece esta posibilidad, solo debemos añadir los siguiente en el código;

define("MAGPIE_CACHE_DIR", "/tmp/mysite_magpie_cache");
define("MAGPIE_CACHE_ON", 1);
define("MAGPIE_CACHE_AGE", 300);
?>


En la variable MAGPIE_CACHE_AGE definimos el tiempo que guarda la cache en segundos (en el ejemplo 300 segundos, 5 minutos). Este tiempo lo podemos variar segun nuestras necesidades.

Código final usando todo lo aprendido:

require_once('magpierss/rss_fetch.inc');
define("MAGPIE_CACHE_DIR", "/tmp/mysite_magpie_cache");
define("MAGPIE_CACHE_ON", 1);
define("MAGPIE_CACHE_AGE", 300);

$rss = fetch_rss("http://www.xlwebmasters.com/rss.php");
$items = array_slice($rss->items, 0, 10);

foreach ($items as $item)
{
echo "".$item["title"]."
".$item["description"]."
";
}
?>

 
Hits
DOCUMENTOS RELACIONDOS
313
Comparar palabras entre dos Textareas.
311
Comprobar el formato de fecha.
360
Calendario con recordatorio de eventos.
197
Redirección del Error de servidor 301 mediante ASP.
164
Funciones.
2210
Sockets en PHP.
281
Crear un POP-UP de una sola visita.
289
Calendario del mes con personalización de colores..
197
Abre un POP-UP cada x entradas.
133
FOR.
829
Validar el tipo de archivos seleccionados.
570
Recomendar a un amigo en php.
273
Efecto de parpadeo en un boton.
1077
Códigos hexadecimales de color.
223
Mostrar errores de PHP aunque el servidor no lo tenga configuradoHay servidores que no muestran ni los errores ni los avisos que lanza el PHP al ejecutar los scripts de PHP de los usuarios. Si este es nuestro caso podemos solucionarlo de dos modos..
1309
Calcular DC de una cuenta bancaria.
226
Detectar si está instalado el plugin de Flash.
244
¿Cómo ver si una web se verá bien en una resolución menor a la de mi pc sin cambiar la configuración?.
236
Contar usuarios activos en la web.
196
Tetris.


www.nociondigital.com - Todo para un mundo digital. Páginas Webs, Buscadores y Webmasters....