Clase para crear un RSS Feed en PHP

admin

July 29, 2009

PHP

No Comment

En esta ocasión les quiero compartir una sencilla clase para poder realizar un RSS desde PHP. Con ella, simplemente es necesario traer una consulta con los campos llamados: “Title”, “Link”, “Description” y “PubDate”, ajustables a cualquier consulta, media la clausa “AS”. Ejemplo, si el campo de tu table se llama “nombre_articulo”, lo seleccionas como ” AS Title”.

Posteriormente se crea una instancia de la clase, y se manda llamar la función principal. Mediante la instrucción “echo” se imprime el resultado, que esta en formato xml, esuqematizado para RSS versión 2.0.

Ahora veamos el código de la clase:

Codigo PHP

<?php
/**

* PHP Feeder, clase para contruir un feeder a partir de una consulta
* a una base de datos.
*/

Class Feeder
{

Function Feed($title, $link, $description, $result)
{
$feedstr = “”;

$feedstr .= ;
$feedstr .= $this->RssTag($this->ChannelTag($this->TitleTag($title) .
$this->LinkTag($link) .
$this->DescriptionTag($description) . $this->FeedItems($result)));

return $feedstr;
}

function FeedItems($result)
{
$feefitems = “”;

if( $result )
{
while($row = mysql_fetch_array($result))
{
$feeditems .= $this->ItemTag($this->TitleTag($row[“Title”]) .
$this->LinkTag($row[“Link”]) . $this->DescriptionTag($row[“Description”]) .
$this->PubDateTag($row[“PubDate”]));
}
}

return $feeditems;
}

function PubDateTag($content)
{
return “\n\t” . $content . “\n\n”;
}

function DescriptionTag($content)
{
return “\n\t” . $content . “\n\n”;
}

function LinkTag($content)
{
return “\n\t” . $content . “\n\n”;
}

function TitleTag($content)
{
return \n\t”</span> . <span>$content</span> . <span>“\n\n”;
}

function ItemTag($content)
{
return “\n\t” . $content . “\n\n”;
}

function ChannelTag($content)
{
return “\n\t” . $content . “\n\n”;
}

function RssTag($content)
{
return “\n” . . “\n\t” . $content . “\n\n”;
}

}

?>

El uso de esta clase en una página externa quedaría:

Codigo PHP

<?php
/**

* Prueba de PHPFeeder.
*/

include(“Feeder.php”);

$Conn = mysql_connect(“tuserverurl”,“tuusuario”,“tupassword”,TRUE) or die(“Error de conexion:” . mysql_error($Conn));
mysql_select_db(“tubasededatos”,$Conn);

$sqlqry = “SELECT Campo1 as Title,
Campo2 as Description,
Campo3 as Link,
Campo4 as PubDate
FROM TuTabla
ORDER BY Campo4 DESC
LIMIT 100;”;

$rs = mysql_query($sqlqry,$Conn);

$Feed = new Feeder();
echo $Feed->Feed(“Titulo del feed”, “http://urlDelFeed”,
“Descripción del feed”, $rs);

if( $rs )
{
echo $Feed->Feed(“Titulo del feed”, “url del feed”,
“Descripción del feed”, $rs);
}
else

{
echo “Error en la conexion con MySQL Server:” . mysql_error($Conn);
}

?>

Y esto nos dará por resultado un canal de noticias en RSS.

Aunque ya la mayoría de los blogs y sistemas de administración de contenido tienen preinstaladas herramientas para feed, el tener una clase propia y sencilla de usar tiene sus ventajas, ya que se le pueden dar usos personalizados, como rastreador de eventos espeficicos, errores, auditorías, o el clasico uso de noticias con mayor control, etc., sin echar mano de correos, ya que estos pueden consumir recursos y transferencia del servidor en mayor medida que los canales de noticias.

Related Posts

Reinventando la Rueda o Porqué Desrrollé RSPhp

admin

July 2, 2017

PHP

No Comment

¿Por que desarrollar un web framework para Php? Si ya existe Laravel, Symphony, Code Igniter. “No reinventes la rueda”, es una frase que escucharás muy seguido si te propones escribir un framework desde cero u otro proyecto similar. Estas personas quieren lo mejor para ti, no lo dudes, pero no siempre tienen la razón. Si […]

Read More

RSPhp Web Framework

admin

July 2, 2017

PHP

No Comment

He desarrollado mi propio framework para PHP, lo he llamado RSPhp, Real Simple Php. Mi objetivo es que sea lo más simple posible, sus peculiaridades son que no usa un template engine, tiene el mínimo de dependencias posibles y esta enfocada a lograr lo que nunca he visto: Eliminar el código spaguetti en desarrollos php. […]

Read More

Leave a Reply

Your email address will not be published. Required fields are marked *

Busca en el blog aqui

Herramientas Útiles

Suscribete al blog

Recibe en tu correo las últimas publicaciones

Publicidad

Sígueme en Twitter