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.
// Definimos variables globales $rss_titulo = 'myweb News'; $rss_url = 'http://myweb.com'; $rss_descripcion = 'Noticias de myweb.com'; $rss_email = 'email@myweb.com'; // Parametros de conexion a MySQL $db_server = 'localhost'; $db_user = 'usuario'; $db_pass = 'contrasena'; // Conexion a la base de datos $conexion = mysql_connect($db_server,$db_user,$db_pass); mysql_select_db("basedatos", $conexion); $sql = "SELECT * FROM noticias"; $result = mysql_query($sql, $conexion); $item = mysql_fetch_assoc($result) // Header para escribir XML header('Content-type: text/xml; charset="iso-8859-1"', true); // Escribimos el archivo RSS echo ''; echo '"; ?> "; echo " http://blog.unijimpe.net/rss '.$rss_titulo.' '.$rss_url.''.$rss_descripcion.' es '.$rss_email.' '.$rss_email.' '; do { echo "- " ; echo "
"; } while ($item = mysql_fetch_assoc($result)); echo "$item['titulo'] " ; echo "".$rss_url."?id=".$item['id'].""; echo "".$item['contenido']." "; echo "
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.
<link rel="alternate" type="text/xml" title="RSS .92" href="http://myweb.com/rss.php" />
Comentarios Total 48 comentarios
Publicado: 03/11/2006 7:27 pm
Esta muy bueno el articulo
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
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
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
Publicado: 14/12/2006 12:24 am
perdon esta es la direccion para bajar el Feedreader
http://www.feedreader.com/download
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?
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.
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
Publicado: 09/12/2007 4:19 pm
como puedo poner el rss de clarin en mi sitio web :(.?
Publicado: 08/01/2008 9:24 pm
excelente artículo, y la web tmb!!! te lo curras mucho.
Permiteme quitarme el sombrero y felicitarte ;)
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.
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.
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.
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
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
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 !
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.
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?
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.
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
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.
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
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
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!
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.
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.
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.
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???
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
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
Publicado: 24/02/2009 5:06 pm
FELICITACIONES… con esto me aventuro ya mismo a incorporar RSS a mi aplicación
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.
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
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!!!
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.
Publicado: 13/04/2010 5:13 am
Hola y para poner una imagen en el RSS?
Saludos!
Publicado: 13/04/2010 5:14 am
Hola y para poner imágenes dinámicas (des de la BBDD) en el RSS?
Saludos!
Publicado: 06/05/2010 4:19 pm
Enhorabuena por el artículo !!!!!
Me ha sido muy útil !
Publicado: 07/05/2010 9:38 pm
Hizo falta el tag , es muy importante para que el lector ‘sepa’ si hay noticias nuevas.
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?
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.
Publicado: 19/12/2010 4:07 pm
Ok, gracias
Es lo que estoy haciendo, quieria confirmar que es lo correcto.
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.
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..
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 […]
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.
Publicado: 20/01/2012 5:31 am
Gracias, buen articulo.
Publicado: 16/11/2012 7:14 am
Gracias por la información