Gerando feeds RSS dinâmicamente com PHP
Em outro artigo, expliquei como gerar um sitemap dinâmicamente
, a lógica para gerar um feed RSS é basicamente a mesma, só alterando-se o header a estrutura obrigatório do XML.
<?php
//Todo o header necessário para o feed RSS
header("Content-Type: application/rss+xml; charset=UTF-8");
echo '<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:atom="http://www.w3.org/2005/Atom">';
$hoje = date('Y-m-d');
?>
<channel>
<title>Título do seu site</title>
<link>http://www.dominio-do-seu-site.com.br/</link>
<description>Descrição do seu site</description>
<language>pt-br</language>
<copyright>Copyright (C) <?php echo date ('Y');?> dominio-do-seu-site.com.br</copyright>
<atom:link href="http://www.dominio-do-seu-site.com.br/rss.xml" rel="self" type="application/rss+xml" />
<?php
/*
Conecta ao banco de dados... essa parte você acha fácil na internet.
*/
$sql_tabela = mysql_query("SELECT id,titulo, descricao, timestamp FROM TABELA ORDER BY id DESC");
while($tabela = mysql_fetch_assoc($sql_tabela)){
echo "
<item>
<title>
<description>Vai lá!]]>
<link>
<guid>
<pubDate>".date('D, d M Y H:i:s O',$timestamp)."
</item>";
}
?>
</urlset>
Muita atenção para esta parte:
<atom:link href="http://www.dominio-do-seu-site.com.br/rss.xml" rel="self" type="application/rss+xml" />
Você deve colocar o endereço exatamente para onde está o seu feed RSS, caso contrário o validador da W3C vai retornar como feed inválido.
Outro detalhe é que o link e o guid devem ter o mesmo valor, não me pergunte porque, mas se faltar o guid o validade da W3C mostra um warning.



