You get what you paid for

Gerando feeds RSS dinâmicamente com PHP

09 de Novembro de 2011 às 12:56 Edgar Serra PHP Sem comentários

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.

Comentar:

Atenção: Todos os comentários são moderados, por isto não perca seu tempo postando bobagens ou spam.