Função php para importar feeds de qualquer site

No post de hoje vou compartilhar com vocês uma função que implementei e que tem como objetivo buscar os feeds de qualquer site  e te possibilitar inserir onde bem entender.

Para que a função trabalhe de maneira correta é necessário que o site a ser buscado ofereça uma página de feeds(obviamente) e que essa página esteja com o conteúdo XML padronizado e organizado.

Se esses 2 pré-requisitos estiverem “OK!” podemos partir para o trabalho.

Primeiro a implementação e explicação da função:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
/**
    * Função para importar os feeds de um site
    * @author Rafael Wendel Pinheiro
    * @param  String $url A URL completa da página de feeds
    * @return Array $itens Um array com informações do site onde os feeds foram buscados e de suas notícias/posts
*/
function get_feeds($url){
    $content = simplexml_load_file($url);
 
    if(!isset($content->channel)){
        die('Conteúdo rss não é válido');
    }
 
    $itens = $content->channel;
 
    return $itens;
}

Como as páginas de feeds são implementadas em XML, a função get_feeds utiliza a função simplexml_load_file para ler o conteúdo. A função deve receber como parâmetro a URL da página de feeds (Ex: www.site.com/rss ou www.site.com/feeds). Ela retornará um array com diversas informações como título e link do site e os títulos, links, links de comentáiors, etc de cada notícia/post.

Para exemplificar a utilização dessa função, vamos imaginar que eu queira importar os feeds do site www.rafaelwendel.com para um outro site (Obs: vou apenas utilizar os títulos de cada post com o link para a página original).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>
<head>
   <title>Importando feeds</title>
   <meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
   <?php $itens = get_feeds('https://www.rafaelwendel.com/feed/') ?>
   <h2>Importando feeds do site <strong><?php echo $itens->title ?> - (<?php echo $itens->link ?>)</strong>
</h2>
   <ul>
      <?php foreach ($itens->item as $item): ?>
         <li><a href="<?php echo $item->link ?>"><?php echo $item->title ?></a></li>
      <?php endforeach; ?>
   </ul>
</body>
</html>

O resultado desse código deve gerar algo semelhante à imagem a seguir.

A cada atualização da página a função vai pesquisar pelos feeds mais recentes oferecidos pelo site no qual está trabalhando. Portanto não se preocupe porque o conteúdo estará sempre atualizado de acordo com o site “fornecedor”.

Antes de importar e publicar o conteúdo de terceiros veja os direitos de autoria e cite sempre a fonte original.

Espero ter ajudado.

Abs

Siga-me no twitter: @rafaelwendel

É formado em Sistemas de Informação, pós-graduado em Sistemas de Banco de Dados e mestre em Educação com foco em Tecnologias Sociocomunitárias. Trabalha como professor de ensino técnico e tecnológico no Instituto Federal de Educação, Ciência e Tecnologia de São Paulo ministrando disciplinas nas áreas de programação, banco de dados, desenvolvimento de projetos e engenharia de software.

Posts relacionados

Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *