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> &middot; <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> &middot; <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.