Crear un RSS en PHP

RSS es un lenguaje desarrollado para todo tipo de sitios que se actualicen con frecuencia y por medio del cual se puede compartir la información y usarla en otros sitios web o programas. Este lenguaje se escribe en XML en un formato especifico que es estándar.

Sea que tenemos en nuestra base de datos MySQL un tabla que contiene las noticias de nuestra página web. Lo que haremos será consultar las ultimas 10 noticias de esta tabla y las escribiremos en un XML con el formato estándar para ser un RSS.

[php]
‘;
echo


http://blog.unijimpe.net/rss
‘.$rss_titulo.’‘.$rss_url.’ ‘.$rss_descripcion.’
es
‘.$rss_email.’
‘.$rss_email.’
‘;

do {
echo “” ;
echo “$item[‘titulo’]” ;
echo ““.$rss_url.”?id=”.$item[‘id’].”“;
echo ““.$item[‘contenido’].”“;
echo “
“;
} while ($item = mysql_fetch_assoc($result));

echo ““;
echo ““;
?>
[/php]

Con esto ya hemos generado nuestro XML con el formato RSS, el siguiente paso es colocar un enlace y leerlo en cualquier Lector de Feeds. Como comentario adicional puedes colocar un tag HTML a tu página para indicarle que tu web tiene asociado un RSS, esto se hace con el tag link en le header de tu HTML donde se coloca la ruta de tu archivo RSS.

  1. <link rel="alternate" type="text/xml"
  2. title="RSS .92" href="http://myweb.com/rss.php" />

Comentarios Total 48 comentarios


Jose
Publicado: 03/11/2006 7:27 pm

Esta muy bueno el articulo

Tatiana
Publicado: 13/12/2006 8:39 am

Muy util tu articulo! Estoy probandolo en java y una vez que tengo el xml creado donde lo debo colocar?. Mi aplicacion web está en localhost, como puedo probar q funciona bien el rss que he creado?
Slds. tlloreti@gmail.com

unijimpe
Publicado: 13/12/2006 10:03 pm

Bueno una vez creado solo tienes que poner un enlace indicando que es el RSS de tu web para que los visitantes se suscriban. Para que lo pruebes necesitarias un programa lector de RSS, no se me ocurro alguno pues los que uso son online.
Saludos

pantuflas
Publicado: 14/12/2006 12:19 am

hey puedes usar FeedReader es un muy buen lector de RSS, es mi lector favorito.

solo un detalle si utilizas el plugin SWFObject para incluir flash en tus post este lector no te recogera esas peliculas.

menciono esto unijimpe para que tu le heches un ojo tambien, y lo compruebes por ti mismo y si nos puedes dar una solucion si es que se puede.

la pagina para bajar el FeedReader:
http://www.google.com/reader

pantuflas
Publicado: 14/12/2006 12:24 am

perdon esta es la direccion para bajar el Feedreader

http://www.feedreader.com/download

caracolillo
Publicado: 26/12/2006 5:51 am

una duda.
como hago para que el php que genera el XML del RSS se genere de forma periodica?

unijimpe
Publicado: 26/12/2006 9:20 pm

En realidad este RSS se generará cada ves que alguien haga un llamado a esta página asi que no hay necesidad de hacerlo de forma periodica pues cada usuario que solicite esa página verá siempre la ultima información.

jose
Publicado: 15/05/2007 4:22 am

Buenas, llevo varios dias intentando realizar los item mediante un bucle, es decir, sin tener que copiar un item y modificarlo cada vez que inserto uno nuevo. alguien me puede explicar como?? creo que lo de arriba lo hace, pero me da error.
gracias de antemano

Lucas
Publicado: 09/12/2007 4:19 pm

como puedo poner el rss de clarin en mi sitio web :(.?

carlos lima
Publicado: 08/01/2008 9:24 pm

excelente artículo, y la web tmb!!! te lo curras mucho.

Permiteme quitarme el sombrero y felicitarte ;)

Jose David
Publicado: 15/01/2008 2:33 pm

Buenas
El articulo esta bien pero me sale un Erro “Parse error: syntax error, unexpected T_ECHO in /home/caribe/domains/radiowebcaribe.com/public_html/rss.php on line 32” me gustaria que me ayudaran gracias.

nereah
Publicado: 10/03/2008 11:26 am

Me ha parecido muy util tu articulo, también muy simple, he conseguido a la primera que me funcionara y menos mal porque tenia un poco de prisa.

:)

Gracias.

Adrian Luty
Publicado: 28/04/2008 6:23 pm

la forma más fácil de agregar un RSS es así

ósea, despues del rss ponen el link que va al xml.

Ralos
Publicado: 07/05/2008 1:25 pm

Tengo un problema ya probe y un xxx.rss lo leo perfectamente con mi lector RSS (SharpReader), pero cuando le meto esta informacion y trato de leer y suscribirme al rss.php con mi lector me manda el siguiente error.

Error parsing RSS XML: Not a valid xml document: Falta el elemento raíz.
gracias por su ayuda

Elissa
Publicado: 20/05/2008 12:10 am

Hola! me parece ecelente articulo, pero kisiera saber como se hace para crear la cuenta del administrador que se ncargara de cambiar las noticias?…. pero que lo haga en una aplicacion web desde mi sitio

Charly
Publicado: 02/06/2008 10:18 pm

Jose David, tuve un error similar al tuyo y modificando la linea 40. por esta: echo “”.$item[‘titulo’].””; lo solucioné.

Espero te sirva,

Saludos !

Charly
Publicado: 02/06/2008 10:20 pm

Entre las doble comillas que aparecen en el mensaje anterior, va el tag title y /title. Con sus respectivos que si los pongo no aparecen.

Pablo
Publicado: 20/06/2008 1:05 pm

Gracias, buen articulo
Solo me quedaron unas dudas:
¿Qué etiquetas ocupan las distintas versiones de RSS? y ¿Cual es la diferencia sustancial entre las versiones 0.92, 1.0 y 2.0?

do
Publicado: 11/07/2008 8:48 am

Esta bueno el artículo, pero me genera un error al generar el header.
————————–
Parse error: parse error, unexpected T_STRING in /1/ar/com/e/s/p/xxxxxx.com/htdocs/feed/index.php on line 27
————————–

En el código de arriba la línea que me genera error es la 22.
————————–
// Header para escribir XML
header(‘Content-type: text/xml; charset=”iso-8859-1″‘, true);
—————————–

Gracias.

Fernando
Publicado: 08/09/2008 11:03 am

muy buena guia… andaba buscando la forma de hacer uno y esta es la mejor que he encontrado hasta ahora

Magnus
Publicado: 28/09/2008 5:10 am

Muy bueno, pero tiene algunos errores sintacticos. Falta un ‘;’ en la linea 19, y en la 40 se te ha olvidado poner lo de “$item[‘titulo’]” por separado del resto del string. Pero por lo demas, todo bien.

morena
Publicado: 30/09/2008 12:59 am

Hola, me parece super bueno el codigo pero tengo un problema, lo carge a mi server pero me sale un error al tratar d leer el archivo xml, o es q tengo q direccionarlo al rss.php pero igual me da error gracias

enrique
Publicado: 16/10/2008 1:47 pm

perfecta la explicacion. me sirvio
Yo tengo un problema deceo escribir un lector rss de tal forma que yo pueda modificar o insertar una cadena es decir otra direccion delante del link del rss

Fondos Gratis
Publicado: 15/12/2008 7:02 pm

revisa el codigo algunas partes estan mal :) mil gracias a mi me sirvio perfecto! saludos! ahh solo me falta averiguar como colocar imagenes, exitos!

iSVai
Publicado: 12/01/2009 2:34 pm

Esto es por lo que me encanta este blog, los artículos son siempre muy prácticos e interesantes, además de aprender cosas que no tenía ni idea. Aqui muestra lo fácil que es.

Luis
Publicado: 15/01/2009 6:51 pm

Una duda espero me la puedan resolver soy nuevo en esto de los rss, el ejemplo que se da aqui me imagino es un archivo php que debo incluir en mi index.php,no?bueno pues la verdad no tengo idea de como hacerlo espero me puedan ayudar.

Luis
Publicado: 15/01/2009 7:04 pm

se que con el codigo del tag link en el header del HTML me pone el acceso directo en la barra de direccion pero yo quiero ponerlo en el cuerpo de mi web.

Luis
Publicado: 15/01/2009 7:18 pm

Warning: Cannot modify header information – headers already sent by (output started at C:\AppServ\www\rss\rss.php:1) in C:\AppServ\www\rss\rss.php on line 22

la linea 22 es esta: header(’Content-type: text/xml; charset=”iso-8859-1″‘, true);

Que hize mal???

Matias
Publicado: 12/02/2009 9:35 am

Hola , una consulta como le hago para filtrar aquellas noticias de la base de datos que tengan caracteres extraños , me explico , cada vez que lee un dato genera el xml , pero cuando aparece un caracter extraño este da error , si alguien puede ayudarme le agradezco gracias

unijimpe
Publicado: 14/02/2009 10:38 pm

El problema no son los caracteres extraños como los llamas, el problema es que si deseas incluir estos caracteres en tu RSS es necesario colocar el contenido entre los tags CDATA.

Por ejemplo para el campo description, en lugar de mostrar:

<description> contenido </description>

Deberíamos mostrar:

<description><![CDATA[ contenido ]]></description>

Puedes leer mas acerca de este tema en http://www.w3schools.com/XML/xml_cdata.asp

Münhe
Publicado: 24/02/2009 5:06 pm

FELICITACIONES… con esto me aventuro ya mismo a incorporar RSS a mi aplicación

Lucas
Publicado: 14/05/2009 3:41 pm

Buen artículo, lo tomé como base pero se me ocurren varias mejoras. Por ejemplo, hacer que el RSS se guarde en un archivo e ir actualizándolo cada vez que se da de alta un artículo en el backend. También se puede utilizar alguna extensión que sea un poco más elegante (como SimpleXML o DOM), para no usar echo.

Muy bueno el blog.
Saludos.

gerardo
Publicado: 14/05/2009 4:20 pm

Hola una duda digamos que creo el xml pero selecciono 10 primeros registros y cuando lo quieran agregar a un lector de feed ya podran ver todos los post o articulos.

otra duda si ya cree mi xml que relacion puedo hacer con feedbuner

saludos

Francisco Salek
Publicado: 01/07/2009 8:37 am

yo lo que hice fue hacer este php que seleccionaba los 10 ultimos registros de la base de datos.

Luego con el archivo .htaccess modifique el archivo rss.php por rss.xml asi FEEDBURNER lo aceptaba y de esta forma el xml (php) es mas dinamico
lo pueden ver en:
http://www.mensajeconpoder.com/rss.xml

Unijimpe sos un DIOS!!!

Xandre31
Publicado: 04/11/2009 5:49 pm

Buenas, he estado probando el codigo y me va perfectamente, tengo que decirte que no me muestra solo los 10 últimos, sino todo, lo cual me va mejor.
Ahora tengo una pregunta que tiene que ve con el $item = mysql_fetch_assoc($result)
Poniéndolo así, y ya que he cambiado el SELECT por uno igual pero con “order by fecha DESC” para que me salgan los últimos añadidos los primeros, no me salen en orden, ahora bien, si pongo el “$item = mysql_query($sql, $conexion);” directamente, sí me sale como quería y además le puedo poner la fecha.
Como soy novato con esto del RSS, porqué el mysql_fetch_assoc ?
De todos modos muchas gracias por el ejemplo, que me ha sido de gran ayuda.

segma
Publicado: 13/04/2010 5:13 am

Hola y para poner una imagen en el RSS?

Saludos!

segma
Publicado: 13/04/2010 5:14 am

Hola y para poner imágenes dinámicas (des de la BBDD) en el RSS?

Saludos!

Webmaster
Publicado: 06/05/2010 4:19 pm

Enhorabuena por el artículo !!!!!
Me ha sido muy útil !

Jose
Publicado: 07/05/2010 9:38 pm

Hizo falta el tag , es muy importante para que el lector ‘sepa’ si hay noticias nuevas.

Fran - Broker de Forex
Publicado: 19/12/2010 2:49 pm

He generado un canal rss con este script , pero tengo una duda.
Una vez hay un nuevo contenido en mi web agrego la entrada en el canal, y según varios colegas primero debe hacer un ping a los buscadores de la url nueva y luego un ping a los rss de la nueva entrada en el canal.
Después me aconsejan mandar la url a los marcadores sociales para que se propage mejor la nueva página.

¿No será todo eso muy exajerado?

unijimpe
Publicado: 19/12/2010 3:02 pm

Si has utilizado este script, cada vez que publicas una noticia automáticamente estará disponible en tu RSS. Si deseas notificar a algunos agregadores o buscadores podrías hacerlo manualmente aunque la mayoría de ellos revisan periódicamente los feeds así que puede demorar un poco pero el ping se hará.

Otra posibilidad es hacerlo en algún sitio que se encargue de hacer estos pings (http://pingomatic.com/) o también en Feedburner que también hace ping a diferentes servicios.

Fran - Broker de Forex
Publicado: 19/12/2010 4:07 pm

Ok, gracias

Es lo que estoy haciendo, quieria confirmar que es lo correcto.

Jose
Publicado: 18/04/2011 2:06 am

Hola, gracias por tu script,

yo copie y pegue el código, modifique los 2 errors sintácticos que tenia en la linea 19 y 40 y obtengo esto

http://www.topfrasesfacebook.com/rss.php

lo que yo quiero es que facebook lea mi rss y actualice mi página de fanaticos pero de esta manera como es posible? muchas gracias.

jesus - libertad financiera
Publicado: 17/07/2011 11:06 am

Quiero ver las actualizaciones de una de mis paginas internas, pero estas no estan en una base de datos, se registran en un archivo de texto, como podria hacerse de esa manera?

Gracias por el articulo..

Ayuda para generar xml - Portalnet.CL
Publicado: 29/09/2011 1:04 pm

[…] ya que creo k varia en la cabecera del xml, si es para un rss creo que este tutorial te va a servir http://blog.unijimpe.net/crear-un-rss-en-php/, si no es para rss avisa y ahi vemos pero todo depende del header de la xml creo, ahora si usas […]

Daimesa - Tiendas Muebles
Publicado: 21/11/2011 5:54 am

Muchísimas gracias.

Es exactamente lo que andaba buscando. Cuando lo tenga implementado, os dejaré el enlace para que le echeis un vistazo, si es menester.

frases chidas
Publicado: 20/01/2012 5:31 am

Gracias, buen articulo.

Loikos
Publicado: 16/11/2012 7:14 am

Gracias por la información

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)