Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marlon Souza

Como Fazer um Feed RSS

Recommended Posts

Amigos, to com uma duvida, eu to vendo a criacao de FEEDS RSS, e analizando que consiste basicamente em armazenamento de noticias, com categoria, onde apos criado a noticia é gerado o feed em xml, me corrija se estiver errado. entao se eu fazer um sistema de noticias, e quando clicar na noticia, eu gerar o xml eu consigo fazer o feed???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim. Nada mais é do que um arquivo estruturado em XML, que qualquer leitor RSS consegue interpretá-lo.

 

Com PHP, crie o arquivo e fazendo uma iteração com o seu banco de dados é só montar a estrutura.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok. Plataforma de cadastro ja tenho pronta e funcionando, um cadastro de categoria, e um de noticia.

 

agora quero pegar os dados do BD e jogar no XML, porem se fizer isso nao vai substituir o meu arquivo, exemplo que eu peguei segue.

 

<?php

	  // Criamos nossa variavel para receber nosso corpo do RSS/XML
	  // esse .= é porque estamos contatenando tudo para a variável $rss

	  $rss = '<?xml version="1.0" encoding="iso-8859-1"?>';
	  $rss .= '<rss version="2.0">';
	  $rss .= '<channel>';
	  $rss .= '<title>Meu Site</title>';
	  $rss .= '<description>blabla</description>';
	  $rss .= '<link>http://www.meusite.com.br</link>';
	  $rss .= '<language>pt-br</language>';

	  // Agora começamos a montar nosso SQL responsável por pegar as informações no nosso banco de dados MySQL.
	  // Conectamos ao nosso MySQL informando os dados de host, user e senha.

	  $connect = mysql_connect('localhost','****','********');

	  // Selecionamos nossa base de dados

	  mysql_select_db('feednews',$connect);

	  $rs_rss = mysql_query("SELECT ID, TITULO, DESCRICAO, DATA FROM feednews ORDER BY data DESC LIMIT 20", $connect);

	  //Agora, geramos os itens com o resultado da busca do banco de dados
	  // 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.meusite.com.br/rss/rss.php?id=$criando->id</link>";
	  $conteudo .= '</item>';

	  }

	  // Agrupamos tudo em uma única variável 

	  $xml = $arquivo.$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/artigo.rss','w+');
 
	  // gravamos os dados no arquivo.rss
	  [b]// o arquivo  nao vai ser substituido???[/b]

	  fwrite($arquivo,$xml);
  
	  // fechamos nosso arquivo
 
	  fclose($arquivo);
  
	  ?>

nesta parte

 

$arquivo = fopen('pasta/artigo.rss','w+');

 

// gravamos os dados no arquivo.rss

// o arquivo nao vai ser substituido, ao inves de criar um novo???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, o conteúdo do arquivo vai ser substituído pelo novo conteúdo, normalmente é assim que funciona.

 

[]'s :D

tem algum exemplo em codigo pq o que eu tenho nao ta dando certo, se coloco com acesso ao xml nao aparece o conteudo, se coloco igual o banco nao aparece o feed.

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui fazer de um jeito que ele nao apaga o feed anterior e sim adiciona o conteudo no novo feed

 

esta funcionando mais quando eu coloco a exibicao do meu conteudo que vem do banco de dados, em maiusculo, assim como esta no nome da coluna do BD, da erro de pagina nao pode ser exibida, se eu coloco em minusculo, nao aparece, o que pode ser???

 

eu tenho que fazer um resumo do Feed ou posso colocar o conteudo inteiro??

Compartilhar este post


Link para o post
Compartilhar em outros sites

como faco pra adicionar categorias, igual a folha de sao paulo, crio um feed pra cadda sequencia, ou posso criar um feed so para todos e disponibilizar as noticias. e Podcast como adiciono arquivos em audio??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Algum exemplo que possui categorias?

 

Eu particularmente nunca vi um que possui categorias, somente um arquivo feed para cada área de um site, por exemplo o digg.com funciona desta maneira. Vá navegando nas categorias e observando os feeds, para cada categoria existe um feed.

 

[]'s http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

tbm sempre faça o teste com o validador de feeds w3c

tipo eu fiz um nesse naipe e ele soh atualizava certinho

qdo eu consegui a validação.

 

Flow

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um arquivo de feed nada mais é que um xml padronizado.

Um tag channel é o tag mestre de sessões no rss e este possui varios tags filhos que o descrevem:

<?xml version="1.0" encoding="iso-8859-1" ?>
<rss version="2.0">
<channel>
	<title>Titulo da categoria</title>
	<description>Descrição da categoria</description>
	<link>http://www.site.com.br/index.php</link>
	<image>
		<link>http://www.site.com.br/logo_pequeno.gif</link>
	</image>
   <item>DADOS</item>
</channel>
<channel>etc.....

Dentro destes channels existem os tags <itens> que são as noticias em sí. Sakou???

 

Este é o metodo interno do rss, se você quiser separar por categorias atraves do php é só criar o rss baseado no ID da categoria dado pelo cliente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.