Bio
Mi avatar Blog de un pequeño informaticú y sus ocurrencias y pequeñas notas de ayuda.
AddThis Feed Button
AddThis Social Bookmark Button
Mi escritorio
Mis PCs de Curro actual
Mis PCs de Curro actual
3 de mis PCs de curro actual
Mi mesa de trabajo
Mi mesa de trabajo
IMGP2193
IMGP2192
IMGP2182
Monte Aramo en nubes
This Month Last Year
Categories
links
24
Abr

Como crear un RSS para tu página (y II)

(QR Code)

RSS
Ahora solo falta saber como generaríamos este código XML desde nuestra web de manera automática. Para ello utilizaremos PHP conectado a nuestra base de datos de MySQL (Voy a ponerlo lo mas genérico posible, cada uno, incluido yo, tenemos nuestras funciones de acceso a base de datos, pero así todo el mundo podrá verlo de manera clara).

\r\n Para empezar, el archivo será un .php para que el servidor ejecute nuestro código, pero para ello necesitamos engañar al navegador cambiando el content type del archivo, para que una vez ejecutado se interprete como XML y no como XHTML o HTML.


header("Content-type: text/xml; charset=ISO-8859-1",true);
print "“;
?>

Inmediatamente después, comenzaríamos rellenando la información del channel manualmente excepto el <pubDate> que puede automatizarse. La parte interesante llega con los <item>. Haremos una consulta que nos devuelva las ultimas 25 entradas de nuestra página (esta os toca hacerla a vosotros, ya que cada modelo de datos es diferente, y no funcionaria una en general). Será del estilo a esta:


SELECT * FROM POSTS ORDER BY POSTID DESC LIMIT 0,25

Ahora utilizaremos esa consulta para recorrer los resultados generando un <item> por cada fila que nos devuelva. Para ello usaremos la conexión entre PHP y MySQL.\r\n


// Objeto de Conexión
$conexion = mysql_pconnect(\’RUTA_SERVIDOR\’,\’USUARIO\’,\’CONTRASEñA\’);
mysql_select_db(\’NOMBRE_BD\’,$conexion) or die(mysql_error());

// Ejecutar la consulta ($consulta contiene la consulta SQL citada anteriormente)

$resultado = mysql_query($consulta) or die(mysql_error());
// Mientras $resultado siga devolviendo filas creamos un
while ($fila=mysql_fetch_array($resultado)) {
?>

http://www.web.com/index.php?p= AUTOR<AUTORl@web.com>
http://web.com/index.php?p=

]]>

}

?>

Como ya avise antes, hay que tener cuidado con las con las fechas del <pubDate>, para eso utilizo una función que me paso Feeddubas que soluciona ese problemilla convirtiendo la fecha al formato de RFC 822 válido.


function makeDate($date) {
$dm=explode(\’ \’,$date);
$f=explode(\’-\’,$dm[0]);
$h=explode(”:”,$dm[1]);
return mktime($h[0],$h[1],$h[2],$f[1],$f[2],$f[0]);
}

Con esto ya tendríais la base de vuestro RSS, otras cosas que podéis añadirle, es controlar si se introducen valores por $_GET (RSS.php?c=1) para tener RSS que filtre por categorías. Eso ya os lo dejo a vuestro criterio.


Nadie ha comentado (aun...)

No hay comentarios

Quieres dejar un comentario?