Posted on 29-05-2008
Filed Under (Desarrollo, PHP) by Programlocura

Hoy les traigo una forma de crear los RSS para su sitio dinamicamente, a que me refiero con esto? A utilizarlo para que cada vez que se realize una inserción de una noticia, una imagen, o lo que sea, esta sea agregada al "RSS.XML" para los suscriptores.

RSS - Syndicate your Articles

PHP:
  1. <?php
  2.     // Creamos un Archivo llamado rss.xml
  3.     $name_file="rss.xml";
  4.     // Lo abrimos para escribir. Si no existe entonces lo creamos.
  5.     $file = fopen($name_file,"w+");
  6.    
  7.     // Aqui establecemos lo basico para formatear el XML.
  8.     // la version y el juego de Caracteres (utf-8).
  9.     $xml = '<?xml version="1.0" encoding="utf-8"?>'."\n";
  10.     $xml.= '<rss version="2.0">'."\n";
  11.     $xml.= '<channel>';
  12.    
  13.     // Aqui podemos hacerlo Dinamico o no, por eso dejé vacio, para que lo llenen
  14.     // Podemos especificar el Titulo, la url (link), una descripción, el lenguaje, y la ultima fecha
  15.     // de creado (De esto puede prescindir)
  16.     $xml.='
  17.     <title>Titulo del Blog</title>
  18.     <link>http://el-enlace-a-tus-feeds-o-tu-blog</link>
  19.     <description>Inserta tu descripcion aqui</description>
  20.     <language>en-us</language>
  21.     <lastBuildDate>01/01/01</lastBuildDate>';
  22.    
  23.     // Ejecutamos una consulta a una base de datos: Puede ser a cualquier tabla tales como
  24.     // Noticias, Imagenes, entre otras. Lo unico que debe cumplir es tener la información
  25.     // suficiente para ejecutar lo siguiente
  26.     $SQL = "SELECT * FROM tu_tabla";
  27.     // $conexion - Es el Handler de la conexion devuelto por "mysql_connect(host, user, pass)"
  28.     $query = mysql_query($SQL, $conexion);
  29.    
  30.     // Llenamos un array con el resultado de la consulta y por cada uno de estos
  31.     // Escribimos un ITEM con su respectiva declaracion.
  32.     // --------------------------------------------------------------------------
  33.     // <title>      - Titulo del Articulo
  34.     // <link>         - Enlace al mismo
  35.     // <pubDate>        - Fecha de Publicado
  36.     // <description>    - Descripcion
  37.    
  38.     while ($reg = mysql_fetch_array($query)) {
  39.         $xml.= '
  40.         <item>
  41.         <title>'.$reg["titulo"].'</title>
  42.         <link>'.$reg["link"].'</link>
  43.         <pubDate>'.$reg["fecha_publicacion"].'</pubDate>
  44.         <description>'.$reg["descripcion"].'</description>
  45.         </item>'."\n";
  46.     }
  47.    
  48.     // Cerramos las Etiquetas abiertas en el inicio. CHANNEL y RSS
  49.     $xml.= '</channel>'."\n";
  50.     $xml.= '</rss>';
  51.    
  52.     // Escribimos el contenido de la variable XML al Archivo y lo cerramos
  53.     fwrite ($file, $xml);
  54.     fclose($file);
  55. ?>

Esta explicado, pero basicamente lo que hace es generar un archivo (cada vez que el script es llamado) con las actualizaciones sacadas de la base de datos. Es muy util cuando hacemos un ABM de noticias (lo mas común) que al insertar una debamos hacer pasar en algun momento del proceso por este SCRIPT para que cree el nuevo archivo RSS en la raiz del sitio.

EDITADO:
Disculpen, no habia visto que quedó mal el codigo debido a la "Interfaz" visual de Wordpress... Que reemplaza por las entidades HTML ...

Si tienen una mejor forma de hacerlo y quieren recomendarla pueden dejar sus comentarios! :)

    Read More   
Post a Comment
Name:
Email:
Website:
Comments: