Feed RSS: Criando um sistema simples com PHP

Por: Carlos Lima Leitura 4 min 17 Mar, 2018 Desenvolvedor 1 8.671

Olá! Hoje vou trazer um sistema simples de feed rss com PHP. Com poucas linhas de código é possível ter um feed simples, mas com boa eficiência. 

Se você está querendo colocar um sistema simples de feed rss no seu projeto, vai gostar desse exemplo.

Estou usando esse mesmo sistema de feed aqui no blog, caso queira consultar o resultado, basta clicar no ícone(RSS) no topo da coluna lateral ao lado.

Continua após o anúncio

Nesse projeto, usei uma conexão PDO para conectar ao banco de dados (MySQL). Se você ainda está começando no php e não sabe como fazer essa conexão, clique aqui .

Então, vamos lá! 

Vamos criar um arquivo chamado de feed.php(pode ser qualquer outro nome).

CRIANDO O TOPO DO CÓDIGO 

<?php
require('include/conexaoComOBanco.php');
date_default_timezone_set('America/Sao_Paulo'); 

$conectar = $conexao->prepare('SELECT * FROM postagens WHERE Status = 1 ORDER by data DESC LIMIT 5');
$conectar->execute();

header('Content-type:application/xml'); 

echo 'xml version="1.0" encoding="ISO-8859-1" ?>'; 
?>

 CRIANDO AS INFORMAÇÕES DO SISTEMA

Abrindo a estrutura xml 

 <rss version="2.0"> 
  <channel>

Aqui vamos colocar as TAGs; TítuloLinkDescriçãoCategoriaImagemLinguagemcopyrightData da última atualização e TAG que especifica o número de minutos em que o feed pode ficar em cache 

Dentro das TAGs <description> e <category>, tratei o texto com a função php utf8_decode() para converter as strings com caracteres ISO-8859-1. Como se trata de uma estrutura XML, vou usar algumas vezes o utf8_decode()

Já na TAG <lastBuildDate> que corresponde a data de atualização, usei a função php date() .

<title>Falando Tech</title>
<link>https://falandotech.com</link>
<description><?= utf8_decode('Falando Tech é um blog de tecnologia que fala de conteúdos diversos.');?></description>
<category><?= utf8_decode('Blog/Tecnologia/TI/Programação');?></category>
<image>
  <url>https://falandotech.com/assets/img/logo_blog.png</url>
</image>
<language>pt-br</language>
<copyright>Falando Tech - Todos os direitos reservados.</copyright>
<lastBuildDate><?=date('d/m/Y');?></lastBuildDate>
 <ttl>20</ttl>		

 

Agora, antes de eu passar para a próxima etapa da estrutura xml, vou criar uma função php para limitar o texto do post e no final dessa função já vou criar o laço usando while()

<?php
   
  function textoPost($texto, $textoMaximo = 350){

   $texto = strip_tags($texto);
   $TotalCaracteres = strlen($texto);

     if ($TotalCaracteres <= $textoMaximo) {
        return $texto;
        }else{
         $limitar = substr($texto, 0, $textoMaximo);
         $acharEspeco = strrpos($limitar, ' ');
         $limitarTexto = substr($limitar, 0, $acharEspeco);
         return $limitarTexto.' [...]';
            }
        } 


  while ($pegar = $conectar->fetch(PDO::FETCH_OBJ)) { 
    $titulo = str_replace('-', ' ', $pegar->titulo);
    $texto = textoPost(utf8_decode(html_entity_decode($pegar->texto))); 
?>

A variável $texto vai trazer a postagem dentro da TAG <description> na próxima etapa logo abaixo, e é aí que está o segredo para o feed funcionar perfeitamente. 

Da forma que está no exemplo acima, evita que o texto possa ser passado com alguma codificação indesejada, e fazendo com que o sistema fique bugado. 

Repare que eu não fechei a chave do laço while(). Ele só será fechado no final do <item>

<item>
  <title><?=utf8_decode($titulo);?></title>
  <link>https://falandotech.com/lermais?ler=<?=$pegar->id?>-<?=utf8_decode($pegar->url);?> 
  </link>
  <image>
   <url>https://falandotech.com/imagempost/<?=$pegar->imagem;?></url>
  </image>
  <category><?=utf8_decode($pegar->categoria);?></category>
  <description><?=$texto;?></description>
  <author>Carlos Lima</author>
  <pubDate><?=date('d/m/Y',strtotime($pegar->datahora));?></pubDate>
</item>

Fechando o laço 

<?php } ?>

 

Agora para finalizar, vou fechar a estrutura xml .

 </channel>
</rss> 

Pronto! Agora temos o nosso feed RSS funcionando. 

 Espero que tenha gostado desse sisteminha simples. Se gostou, curta nossa página no Facebook, compartilhe este post.. Segue também lá no Twitter e no Instagram. Isso vai me ajudar muito! 

Em caso de dúvida, comenta aqui nos comentários, beleza? Um forte abraço, até mais!

Compartilhar Deixar um comentário

Leia também


  • Equipe Falando Tech para Ariel dos Santos

    Olá! Além desse? Sim, tem um outro sobre "Como criar uma conexão com o banco de dados usando uma conexão PDO". Obrigado pelo seu comentário. Abraço

Comentar

*O seu e-mail não será mostrado no comentário

© 2015 - 2022 - FalandoTech.com - Todos os Direitos Reservados

Movido com muito em Campos dos Goytacazes/RJ