Aqui tienes una clase
Código PHP:
<?php
class GeneradorRss {
private $rss;
function __construct() {
$this->rss = "<?xml version='1.0' encoding='iso-8859-1'?>\n";
$this->rss .= "<rss version='2.0'>\n";
$this->rss .= "<channel>\n"; //__construct
}
public function generar_canal($arreglo_canal) {
$this->rss .= "<title>{$arreglo_canal['title']}</title>\n";
$this->rss .= "<link>{$arreglo_canal['link']}</link>\n";
$this->rss .= "<description>{$arreglo_canal['description']}</description>\n";
} //generar_canal
public function generar_item($arreglo_item) {
foreach ($arreglo_item as $indice => $item) {
$this->rss .= "<item>\n";
$this->rss .= "<title>{$item['title']}</title>\n";
$this->rss .= "<link>{$item['link']}</link>\n";
$this->rss .= "<description>{$item['description']}</description>\n";
$this->rss .= "</item>\n";
} //foreach
$this->rss .= "</channel>\n";
$this->rss .= "</rss>\n";
} //generar_item
public function get_rss() {
return $this->rss;
} //get_rss
} //GeneradorRss
?>
Envias la siguiente cabecera en la pagina donde se generan los rss
Código PHP:
header('Content-Type: text/xml');
Para que el navegador sepa que lo que le viene es un fichero XML.
Luego lo que haces es crear un objeto, para generar el canal le pasas un arreglo con los indices con el mismo nombre de los campos del rss como puedes ver en el método generar_canal, también puedes añadir otras etiquetas si lo deseas, y con luego mandas a generar los items con el método generar_item() al que le pasas un arreglo bidimensional de la forma
Código PHP:
$arreglo[0]['title'] = 'Hola';
$arreglo[0]['link'] = 'http://www.forosdelweb.com';
...
$arreglo[20]['title'] = 'Hola de Nuevo';
$arreglo[20]['link'] = 'http://www.forosdelweb.com';
y al final le pegas un echo al método get_rss() y ya tienes tu rss.