Método sencillo para leer feeds mediante PHP

Leer feeds no es algo que se deba limitar a aplicaciones lectoras de feeds, ya que actualmente muchas webs ofrecen sus datos mediante este formato. Hacer un lector de feeds puede ser algo complicado, o más bien laborioso, ya que hay varios formatos y versiones, a parte de que no todo el mundo publica feeds válidados.

Se puede realizar un sencillo lector de feeds con PHP gracias a la librería SimpleXML (se necesita PHP5). Tan solo habrá que leer el feed y parsearlo, y luego acceder a sus elementos. Algo así como:

$data = @simplexml_load_string(file_get_contents($url));
if ($data) {
// Obtiene el los elementos <item>
$items = $data->xpath('//item');
}

Pero hay que tener en cuenta que el existen etiquetas como <content:encoded> que la librería no las leerá y recuperará tan fácilmente. Para ello deberemos mirar el xmlns correspondiente:

xmlns:content="http://purl.org/rss/1.0/modules/content/"

y leer la etiqueta de la siguiente manera:

foreach ($data as $item) {
$content = $item->children('http://purl.org/rss/1.0/modules/content/');
echo (string) trim($content->encoded);
}

Con este código se puede empezar a leer feeds, pero aún así, si necesitáis más, podéis mirar este post, que es donde he encontrado la solución al <content:encoded>.

Librería PHP para crear Feeds

PHP Universal Feed Generator es una librería que nos permite añadir feeds en varios formatos en nuestras aplicaciones.

Nos permite:

  • generar feeds en RSS 1.0, RSS 2.0 y ATOM 1.0
  • genera feeds válidados
  • admite todos los tipos de elementos de un feed
  • facilidades de uso
  • convierte automáticamente los formatos de fecha
  • genera UUID para ATOM
  • permite el uso de subtags y atributos
  • Orientado a objetos mediante PHP5

PHP Universal Feed Generator

Gracias Elías por el aviso