De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Roberson Carlos Fox
Data de Publicação: 04 de Julho de 2006
Atom é o nome dado a um estilo baseado em conteúdo XML e meta data, ou seja, é um protocolo em nível de aplicação para publicar e editar fontes web que são periodicamente atualizados, um exemplo para isto são os blogs.
Os feeds devem ser formados em formato XML e são identificados como application/atom+xml media type.
O funcionamento dele não difere das Markup Languages tradicionais, com cabeçalhos, títulos e corpo, como no HTML 4.0.
Um feed consiste de alguns Metadata seguidos por alguns números de entrada. Todo feed deve conter um cabeçalho.
<?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <title>Genova Home Page - News Feed</title> <link href=http://www.genova.einet.com.br/> <updated>2006-01-05 3:05:47</updated> <author> <name>Roberson Carlos Fox</name> <email>robersonfox@genovaengine.com</email> <uri>http://www.genova.einet.com.br/about-me</uri> </author> <id>http://www.genova.einet.com.br</id> <icon>http://www.genova.einet.com.br/img/genova.ico</icon> <logo>http://www.genova.einet.com.br/img/G3.jpg</logo> <rights> © 2002-2006 Roberson Carlos Fox </rights> <subtitle>Esteja atualizado com o que há de melhor na web</subtitle> <category term=Informática/> </feed>
Abaixo se segue uma lista com os principais elementos requeridos em um feed e um exemplo.
<id>http://www.genova.einet.com.br</id>
<title>Genova Home Page - News Feed</title>
<author> <name>Roberson Carlos Fox</name> <email>robersonfox@genovaengine.com</email> <uri>http://www.genova.einet.com.br/about-me</uri> </author>
<link rel="self" href=" http://www.genova.einet.com.br/" />
Um exemplo de uma entrada seria um único post em um site.
<entry> <title>Título do artigo</title> <link href=http://www.genova.einet.com.br/artigos.php?id=46/> <id>http://www.genova.einet.com.br/artigos.php?id=46/</id> <updated>05-01-2006 02:56:00</updated> <summary>Descrição do artigo</summary> <author> <name>Roberson Carlos Fox</name> </author> </entry>
Aqui esta uma lista de elementos requeridos para o Feed, cada um tem uma breve descrição e é seguido de um exemplo, como no tópico acima.
<id>http://www.genova.einet.com.br/artigos.php?id=46</id>
<updated>05-01-2006 02:56:00</updated>
Neste parte ainda cabem os elementos link e author que funcionam da mesma forma que no cabeçalho e como já foi dito, salvo que eles fazem referencia ao artigo e não ao Feed.
Uma entrada interessante é a:
Source, ela, a entrada, é usada para se referir a documentos copiados de outros Sites, assim seria como se falássemos que a fonte foi de outro local. Ex.:
<source> <id>http://example.org/</id> <title>Fourty-Two</title> <updated>2003-12-13T18:30:02Z</updated> <rights>© 2005 Example, Inc.</rights> </source>
<?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <title>Genova Home Page - News Feed</title> <link href=http://www.genova.einet.com.br/> <updated>2006-01-05 3:05:47</updated> <author> <name>Roberson Carlos Fox</name> <email>robersonfox@genovaengine.com</email> <uri>http://www.genova.einet.com.br/about-me</uri> </author> <id>http://www.genova.einet.com.br</id> <icon>http://www.genova.einet.com.br/img/genova.ico</icon> <logo>http://www.genova.einet.com.br/img/G3.jpg</logo> <rights> © 2002-2006 Roberson Carlos Fox </rights> <subtitle>Esteja atualizado com o que há de melhor na web</subtitle> <category term=Informática/> <entry> <title>Título do artigo1</title> <link href=http://www.genova.einet.com.br/artigos.php?id=46/> <id>http://www.genova.einet.com.br/artigos.php?id=46/</id> <updated>05-01-2006 02:56:00</updated> <summary>Descrição do artigo1</summary> <author> <name>Roberson Carlos Fox</name> </author> </entry> <entry> <title>Título do artigo2</title> <link href=http://www.genova.einet.com.br/artigos.php?id=47/> <id>http://www.genova.einet.com.br/artigos.php?id=47/</id> <updated>06-01-2006 01:36:00</updated> <summary>Descrição do artigo2</summary> <author> <name>Roberson Carlos Fox</name> </author> </entry> </feed>
Como você pode notar, as entradas em um Feed podem vir de um banco de dados e ocupar muito espaço no feed, o bom seria pegar os últimos 15 posts do site em questão e enviá-los para uma variável fazendo uso de um loop como no exemplo:
<?php $tabela := "artigos"; $data=date("Y-d-m G:i:s"); // Conecta ao banco de dados MySQL $db=mysql_connect($host, $sql_login ,$sql_passwd); mysql_select_db ($nome_bd); //estou assumindo que a tabela //chame-se artigos na variável $tabela $sql="SELECT * FROM $tabela ORDER by ID desc"; $resultado = mysql_query($sql,$db); if (mysql_numrows($resultado)){ $a1=0; while (($linha = mysql_fetch_row($resultado)) and ($a1!=15)) { $a1=$a1+1; $conteudo.=" <entry> <title>$linha[4]</title> <link href=http://www.genova.einet.com.br/artigos.php?id=$linha[0]/> <id>http://www.genova.einet.com.br/artigos.php?id=$linha[0]/</id> <updated>$linha[3]</updated> <summary>$linha[5]</summary> <author> <name>$linha[1]</name> </author> </entry> "; } } mysql_free_result($resultado); if ($db){ mysql_close($db); } ?> //Estou assumindo que a //Linha 4 = Título //Linha 0 = ID do artigo //Linha 3 = Data //Linha 5 = Descrição //Linha 1 = Autor //Faça as alterações de forma que seu script funcione. ?>
Este simples script irá pegar os dados do banco de dados e criar as entradas, uma por uma, até um total de 15 entradas de acordo com a variável $a1. Em seguida você deverá adicionar o cabeçalho do Feed:
<?php header("Content-Type: text/xml"); echo" <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <title>Genova Home Page - News Feed</title> <link href=http://www.genova.einet.com.br/> <updated>$data</updated> <author> <name>Roberson Carlos Fox</name> <email>robersonfox@genovaengine.com</email> <uri>http://www.genova.einet.com.br/about-me</uri> </author> <id>http://www.genova.einet.com.br</id> <rights> © 2002-2006 Roberson Carlos Fox </rights> <subtitle>Esteja atualizado com o que há de melhor na web</subtitle> <category term=Informática/> $conteudo; </feed>" ?>
Por fim, uma atenção especial para a variável "conteudo", ela é gerada no primeiro script e armazena as entradas do Feed.
Com estas poucas informações você com certeza será capaz de criar um RSS em seu site.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários