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

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

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, 27 de Agosto de 2014




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Mobile Game Jam: Vol. 1


Capa do livro
Android para Programadores: Uma Abordagem Baseada Em Aplicativos


Capa do livro
Java com Orientação a Objeto





Hostnet

IMD