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

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

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, 26 de Novembro de 2014




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Informática FGV


Capa do livro
Use a Cabeça! Física


Capa do livro
Autodesk Revit Architecture 2013: Conceitos e Aplicações





Hostnet

IMD