Ler feed de outros sites com SimplePie
Postado por: Pedro Rogério em
Para aqueles que não conhecem, o SimplePie é uma poderosa ferramenta para leitura de feeds RSS ou Atom escrita em PHP. Algumas pessoas podem estar se perguntando, mas não é possível ler um feed com JavaScript? Sim, é possível, como mostrei aqui com JavaScript + YQL, a desvantagem na utilização de JavaScript é que ele não gera um cache, ou seja, a cada requisição na página, uma nova requisição é feita para a leitura do feed.
Já com o SimplePie isso não acontece, ele cria um arquivo de cache e novas requisições são feitas somente se o conteúdo for atualizado. Para que vocês entendam melhor, vamos a um exemplo. Antes de tudo, vá até o site do SimplePie e faça o download da aplicação.
Descompacte o zip e pegue somente o arquivo simplepie.inc, por enquanto só vamos precisar dele.
Dentro do diretório de sua aplicação, onde você quer mostrar os feeds, cria uma pasta chamada cache, e tenha certeza que é permitida a gravação nessa pasta. Agora vamos ao nosso código PHP:
< ?php
include("simplepie.inc");
$feed = new SimplePie('http://endereco_do_feed');
?>
Como podem ver basta dar um include do simplepie na página e depois atribuir a uma variável o feed que eu quero ler.
< ?php
//5 é o número de itens que eu desejo mostrar
$items = $feed->get_items(0, 5);
foreach ($items as $item) :
$title = $item->get_title();
$url = $item->get_permalink();
$desc = $item->get_description();
// Pego as 30 primeiras palavras do nó description do Feed
$desc_array = explode(" ", $desc);
$desc_excerpt = array_slice($desc_array, 0, 30);
$desc_output = implode(' ', $desc_excerpt);
?>
<h2><a href="<?php echo $url;?>">< ?php echo $title;?></a></h2>
<p>< ?php echo $desc_output;?> ...</p>
< ?php endforeach; ?>
Após uso um foreach para percorrer esse XML e mostrar os itens na tela como eu desejo.
Vejam aqui nesse exemplo onde mostro o Feed de 3 blogs. Criei esse layout com base nesse exemplo somente para demonstração, portanto, teste em browsers modernos.













Mas com Javascript a requisição é feita pelo cliente, e não pelo servidor, assim é possível manter menos carga no servidor, e ainda manter o rss no cliente mais atualizado.
JS continua sendo a melhor opção para a maioria dos casos se você quer exibir o rss externo para seu cliente.
este post é incrível! Obrigado pela informação!
Angela@nossafamiliaalvares.com.br
muay thai said on November 8th, 2011 at 12:20 pm