Ler feed de outros sites com SimplePie

Postado por: Pedro Rogério em
SimplePie

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.

Posts Relacionados

Confira também outros artigos interessantes postados aqui no blog.

Gostou desse post?

Assine o nosso Feed RSS, siga-nos no Twitter, ou simplesmente nos recomende a seus amigos!

Sobre Pedro Rogério

Pedro Rogério é desenvolvedor web por paixão, não saberia fazer melhor outra coisa. Além de escrever para o Pinceladas da Web também escreve para o CSS no Lanche, blog voltado ao desenvolvimento front-end.

3 Responses to “Ler feed de outros sites com SimplePie”

  1. Wilker disse:

    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.

  2. angela disse:

    este post é incrível! Obrigado pela informação!

    Angela@nossafamiliaalvares.com.br

  3. muay thai said on November 8th, 2011 at 12:20 pm

Leave a Reply