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('http://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
Belo post, poupou algum tempo.
Rafael não estou conseguindo aplicar seu código.
São 2 blocos PHP separados? Um para função e outros no HTML?
São em paginas separadas?
Conseguir com o seu exemplo, mas estou tentando com esse site
” http://www.mg.superesportes.com.br/futebol/cruzeiro/ ” e esta dando erro.
Wanderlei,
Essa página que você colocou não é uma página de RSS. O correto seria http://www.mg.superesportes.com.br/rss/rss_cruzeiro/
Abs!
Como trazer as imagens do rss para o site?