2008-10-08 13 views
20

Tengo que producir un RSS/Atom en diversas aplicaciones, y quiero saber una buena biblioteca o clase que sea capaz de producir ambos, y que ya maneje todos los recursos comunes problemas.La mejor lib/clase de PHP para generar RSS/Atom

Por ejemplo, la que utilicé durante años no da el formato correcto para la fecha, por lo que mi feed no está bien manejado por varios agregadores.

Actualización: ¿Por qué busco una biblioteca? Porque el que utilicé durante años, que había pirateado un par de veces, tiene un pequeño problema. Tal vez una especificación no se está siguiendo correctamente.

Why does my RSS feed duplicate some entries?

Respuesta

28

El PHP Universal Feed Generator parece ser exactamente lo que buscas: tiene una forma simple basada en OO de declarar un nuevo feed y enviarlo a tu especificación deseada.

También tiene incorporadas las conversiones de formato de fecha como una de sus características.

Características:

  • Genera RSS 1.0, RSS 2.0 y Atom 1.0
  • Todas las alimentaciones se están validadas por el selector de alimentación.
  • Implementa espacios de nombres apropiados para diferentes versiones.
  • Convierte automáticamente los formatos de fecha.
  • Genera UUID para fuentes ATOM.
  • Maneja la codificación CDATA para las etiquetas requeridas.

versiones compatibles:

  • RSS 1.0 (que obsoleto oficialmente RSS 0.90)
  • RSS 2.0 (que oficialmente obsoleto RSS 0.91, 0.92, 0.93 y 0.94)
  • ATOM 1.0
+2

Y si usted está interesado en que la biblioteca generar RSS1 W3C-estandarizada/2 y se alimenta Atom, escribí un parche para ello: http://sites.google.com/site/danchurchinc/software-patches – amphetamachine

+0

ajaxray.com está fuera de línea ahora, pero [el paquete se puede descargar a través de phpclasses.org] (http://www.phpclasses.org/package/4427-PHP-Generate-feeds-in- RSS-1-0-2-0-an-Atom-formats.html). – feeela

+0

@feela aplausos, enlace en respuesta actualizada. – ConroyP

4

lo que realmente necesita una biblioteca? Elija el formato y simplemente siga sus especificaciones para generar un XML válido.

Here is some tutorial para empezar.

3

Hmmm, IMO, a menos que desee carcasas, estos dos formatos son fáciles de fabricar sin clases. P.ej. para los feeds RSS de un sitio web que administro, simplemente escribí una pequeña plantilla de Smarty, y funciona bastante bien.

1

PHP Universal Feed Generator es una buena respuesta. Solo tenía que modificar el código de acuerdo con un comentario en la página web para manejar correctamente los caracteres franceses.

http://www.ajaxray.com/blog/2008/03/08/php-universal-feed-generator-supports-rss-10-rss-20-and-atom/#comment-341

Como dice Kereste (1 de junio) FeedWrite hace algunos problemas con ninguno-Inglés caracteres UTF-8 como un etc ..esto es porque xml solo conoce 5 entidades (&, ", ',). Así que cambié la línea 298 en el código fuente en

$ nodeText. = (In_array ($ tagName, $ this-> CDATAEncoding))? $ TagContent: str_replace (array ('&' '” '“'”,” ), array ('&' '"' ''', '<', '>' ), $ tagContent);

a avoiod convertir charakters en entidades XML equivocadas

+2

Si la clase no es compatible con el formato W3C y tiene problemas con UTF-8, no puede ser bueno ... – feeela

3

para juegos de caracteres no ingleses echar un vistazo a las htmlentities función de PHP: t http://php.net/manual/en/function.htmlentities.php

que acaba de añadir. o Apoyo charset croata:

$nodeText .= (in_array($tagName, $this->CDATAEncoding))? $tagContent : htmlentities($tagContent, ENT_COMPAT, 'UTF-8'); 
Cuestiones relacionadas