Criar um Feed RSS

Canal: XML  |  Autor: Redação Oficina da Net  |  Publicado em: 05/09/2007  |  Views: 8.623
Olá pessoal.
Hoje vou mostar como fazer para criar um feed RSS, hoje muito utilizado pela maioria dos sites. E é uma das novidades que venho com a famosa Web2.0.

Para quem não sabe, RSS é um subconjunto de "dialectos" XML que servem para agregar conteúdo ou "Web syndication" podendo ser acedido mediante programas/sites agregadores. É usado principalmente em sites de notícias e blogs.

A abreviatura do RSS é usada para se referir aos seguintes padrões:

- Rich Site Summary (RSS 0.91)
- RDF Site Summary (RSS 0.9 e 1.0)
- Really Simple Syndication (RSS 2.0)

A tecnologia do RSS permite aos usuários da internet se inscrever em sites que fornecem "feeds" (fontes) RSS. Estes são tipicamente sites que mudam ou atualizam o seu conteúdo regularmente. Para isso, são utilizados Feeds RSS que recebem estas atualizações, desta maneira o usuário pode permanecer informado de diversas atualizações em diversos sites sem precisar visitá-los um a um.

Os feeds RSS oferecem conteúdo Web ou resumos de conteúdo juntamente com os links para as versões completas deste conteúdo e outros metadados. Esta informação é entregue como um arquivo XML chamado "RSS feed", "webfeed", "Atom" ou ainda canal RSS.
Geralmente expecificados pelas imagens:


Um exemplo de como deverá seguir nosso RSS:
<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
<channel>
<title>Oficina da Net</title>
<description>Portal WebMaster</description>
<link>http://www.oficinadanet.com.br</link>
<language>pt-br</language>
<item>
<title>Título da Coluna</title>
<description>Descrição da coluna</description>
<lastBuildDate>Aqui entra a data</lastBuildDate>
<link>http://www.oficinadanet.com.br/index.php?acao=colunas_show&id=1>/link>
</item>
</channel>
</rss>


As Tags acima, são Tags padrão que devem ser mantidas. Somente o que irá variar dentro das tags acima é a TAG <item></item>. Iremos criar a tag item na quantidade de colunas ou registros que buscaremos no banco de dados.

Abaixo o código php que faz a mágica:
<?
//FEED RSS

$rss = '<?xml version="1.0" encoding="iso-8859-1"?>';
$rss .= '<rss version="2.0">';
$rss .= '<channel>';
$rss .= '<title>Oficina da Net - Colunas</title>';
$rss .= '<description>http://www.oficinadanet.com.br</description>';
$rss .= '<link>http://www.oficinadanet.com.br</link>';
$rss .= '<language>pt-br</language>';

// Conexão ao banco
$connect = mysql_connect('localhost','username','password');

// Selecionamos nossa base de dados
mysql_select_db('base',$connect);
$rs_rss = mysql_query("SELECT id, titulo,descricao,data FROM tabela_colunas ORDER BY data DESC LIMIT 20", $connect);


// Iniciamos nossa variável $conteudo vazia.
$conteudo = "";

while($criando=mysql_fetch_object($rs_rss))
{
   $conteudo .= '<item>';
   $conteudo .= "<title>$criando->titulo</title>";
   $conteudo .= "<description>$criando->descricao</description>";
   $conteudo .= "<lastBuildDate>$criando->data</lastBuildDate>";
   $conteudo .= "<link>http://www.oficinadanet.com.br/index.php?acao=colunas_show&id=".$criando->id."</link>";
   $conteudo .= '</item>';
}

// Aqui a var xml recebe todo conteudo da var rss e mais da var conteudo
$xml = $rss.$conteudo;

// Fechamos nossas TAG
$xml .= '</channel></rss>';

// Depois de criarmos nosso rss, vamos gravar ele em disco para podermos utilizar.

// Abre o arquivo para leitura e escrita; coloca o ponteiro do arquivo no começo
// e diminui (trunca) o tamanho do arquivo para zero. Se o arquivo não existe,
// tenta criá-lo (w+).
$arquivo = fopen('pasta/artigos.xml','w+');

// gravamos os dados no arquivo.xml
fwrite($arquivo,$xml);

// fechamos nosso arquivo
fclose($arquivo);
?>


Este código faz a busca no banco, retorna os últimos 20 registros e salva no arquivo .xml

O resultado:
Creative Commons Esta obra está licenciada sob uma Licença Creative Commons. Você pode copiar, distribuir, exibir, executar, desde que seja dado crédito ao autor original (Citando nome do autor, data, local e link de onde tirou o texto). Você não pode fazer uso comercial desta obra. Você não pode criar obras derivadas.
Vote no artigo:
NR. DE VOTO(S): [1]

Compartilhe:

[x] Fechar Preencha os campos abaixo para indicar esta página:
Seu nome:
Seu e-mail:
Nome do indicado:
E-mail do indicado:
Deixe uma mensagem:
Anti-spam:

(nova imagem)
Preencha o que vê:
Twitter diHITT Facebook delicious envie por e-mail comentar

comentarComentários:

Preencha o formulário para comentar:

[x] Fechar
Nome:*
E-mail:* (não será exibido)
Site: (http://)
Comentário:*
Anti-spam:

(nova imagem)
Preencha o que vê:

Deseja receber as respostas dos comentários

Anderson Villela
Publicado em:
05/09/2007 - 12:59
Gostei da matéria heim Nicolas, tinha em esquecido como fazia isso, valew!
Luiz Gustavo Santana
Publicado em:
18/02/2009 - 18:30
Não consegui.
O seguinte erro aparece:
This page contains the following errors:

error on line 1 at column 3: xmlParsePI : no target name
error on line 1 at column 3: Encoding error
Below is a rendering of the page up to the first error.
Sergio
Publicado em:
07/07/2009 - 07:11
nao consegui tb... ele nao aparece erro mas nao aparece nada rsrs. mas no xml ele ta la certinho!
Denis
Publicado em:
02/01/2010 - 20:56
tambem não consigo