PHP descomplicado: Gerando um feed RSS de forma dinâmica pelo PHP


Autor/fonte: Sandro J. S. Souza
E-mail/Url: http://www.sandro.eti.br
Tags: [ rss ]



Digg del.icio.us

Mas o que é RSS?!

Segundo a Wikipédia:

"RSS (RDF Site Summary), padrão definido pela W3C para agregamento de conteúdo. Serve como índice de alterações que ocorram em determinado site. Este sistema também é conhecido como feeds."


Eu não vou entrar em maiores detalhes quanto a sintaxe de um RSS, mas como referência sobre isto e o RSS em si eu indico a leitura dos seguintes links:



Vamos ver então como gerar um feed RSS de forma dinâmica (através de uma consulta a um Banco de dados MySQL) pelo PHP!

Arquivo rss.php:

<?
#Declaramos o tipo de documento que geraremos
header("Content-Type: application/xml; charset=ISO-8859-1");

#Declaramos a data e hora de expiração deste documento (esta como sendo 26/07/1997 para forçar a leitura deste PHP sem que ele esteja em cache)
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

#Declaramos a data e hora da última modificação deste documento (sempre sendo a data e hora que ele estiver sendo acessado)
header("Last-Modified: ". gmdate("D, d M Y H:i:s") ." GMT");

#Declaramos os controles de cache para não permitir nenhum tipo de cache e para forçar a leitura deste PHP sem que ele esteja em cache
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

#Declaramos a versão do XML utilizada e seu encoding
echo '<' . '?xml version="1.0" encoding="ISO-8859-1" ?' . '>';
?>
<rss version="2.0">
<channel>
<title>Título do seu feed RSS</title>
<link>Url do seu site</link>
<description>Descrição do seu feed RSS</description>
<language>pt-br</language>
<webMaster>seuemail@seusite.com</webMaster>
<?
#Conexão ao banco de dados
$conexao = mysql_connect("seu_host", "seu_nome_de_usuario", "sua_senha");
$db = mysql_select_db("seu_banco_de_dados");

#Realizando o SELECT dos dados para gerar o feed RSS a partir deles (é utilizado o limite de 20 registros para o feed não ficar muito extenso)
$sql = "SELECT campos FROM tabela ORDER BY id DESC LIMIT 20";
$resultado = mysql_query($sql)
or die (mysql_error());

while ($linha=mysql_fetch_array($resultado)) {
       $id = $linha["id"];
       $titulo = $linha["titulo"];
       $descricao = $linha["descricao"];

       echo "<item>";
       echo "<title>$titulo</title>";
       echo "<link>http://www.seusite.com/arquivo.php?id=$id</link>";
       echo "<description>$descricao ...</description>";
       echo "</item>";
}
?>
</channel>
</rss>

Obs.: Repare nos comentários (nas linhas que começam com um # ("jogo da velha")) para maiores explicações quanto ao funcionamento de tal PHP.

Configurado tal script, basta enviá-lo ao servidor do seu site e adicionar o link dele (que seria algo como, por exemplo: http://www.seusite.com/rss.php) no seu leitor de feed favorito.

Deixo aqui também os meus agradecimentos ao Silvano, meu grande mestre do PHP, que me ajudou a montar tal script. Muito obrigado pela força, Silvano!



Sobre o autor(a): Sandro J. S. Souza
Trabalho com desenvolvimento Web. Visite meu site - http://www.sandro.eti.br
Avatar



Enviado por xKuRt em 02/01/2007 às 10:06


Itens relacionados

Leitor de feeds RSS com AJAX e PHP
Acessando um arquivo RSS (feed) utilizando PHP
Criando RSS 2.0 (Really Simple Syndication) com PHP e MySQL
Monitorando erros em sites PHP via RSS
Feed RSS com atualização automática (XML + PHP + MySQL)
Classe para manipular RSS do Wordpress
RSSDeal - Classe para manipulação de RSS
Função para converter RSS pubDate para timestamp
Classe de leitor de RSS em PHP
Troca de notícias utilizando o formato RSS

Avaliação

Avaliação desta publicação: 10.00; Total de avaliações: 2


Avaliar:


A avaliação de publicações é restrita a membros cadastrados e logados no nosso site.



Comentários

AvatarEnviado por gMv3 em 08/07/2008 às 01:22

Muito bom! Obrigado pelo artigo!

--
.:moosher:.


Envio de comentário:




  

Quarta, 01 de Outubro de 2014




Leitura recomendada

Estruturas De Dados

Top 5 membros

Últimos membros online

  • 1em 01/10 às 00:42
  • kelexem 24/09 às 09:55
  • xKuRtem 23/09 às 20:00

Últimos membros cadastrados



Capa do livro
C# - Guia do Programador


Capa do livro
Análise e Gestão de Requisitos de Software - Onde Nascem os Sistemas


Capa do livro
Descobrindo o Linux: Entenda o Sistema Operacional GNU / Linux





Hostnet

IMD