Leitor de arquivo XML (RSS) em PHP

20, Março 2008 at 4:28 am | In PHP / MySql | 5 Comments
Tags: , , , ,

Para hoje um simples leitor de arquivo XML, com ele será possível ler FEED de noticias, é apenas um exemplo que cada um poderá modifica-lo as suas necessidades, neste exemplo vou pegar uma URL de um FEED e mostrar na tela em uma tabela com PHP.

Segue o código:

<?php

$xml = simplexml_load_file(“http://maurocesarsl.wordpress.com/rss“);

echo “<table>”;
foreach($xml->channel->item as $item){
echo “<tr><td>” . “<a href=’” . $item->link . “‘ target=’blank’ >” . utf8_decode($item->title)  . “</td></tr>”;
echo “<tr><td>”. utf8_decode($item->description).”</td></tr>”;
}
echo “</table>”;
?>

O endereço que estou usando de teste e o RSS do blog http://maurocesarsl.wordpress.com/rss nele tem um arquivo XML.

As informações estão em uma hierarquia, por exemplo cada notícia e um item do RSS, e os itens estão dentro do channel. Por este motivo q uso $xml->channel->item estou pegando cada item do RSS, e estou chamando em uma variável $item, desta maneira para exibir um link uso $item->link, assim por diante.

Para ver o arquivo XML puro veja em http://maurocesarsl.wordpress.com/rss, no arquivo vc percebe a hierarquia das informações.

Segue o código em txt, Leitor de RSS.

Qualquer dúvida, maurocesarsl@uol.com.br

5 Comentários »

Feed RSS dos comentários deste post URI do TrackBack

  1. Coloquei seu script em uma página (.php) e enviei o arquivo para o servidor trocando o endereço para o meu feed. Aconteceu este erro. O que fiz errado?

    Fatal error: Call to undefined function: simplexml_load_file() in /home/pirenopo/public_html/teste.php on line 1

  2. Kra.. esse erro pode ter acontecido pelo fato do seu arquivo xml estar fora do padrão, assim como o xml do site do UOL (ultimas noticias) isso acontece, mas se possivel vc poderia me enviar seu arquivo xml para verificar? Então se vc permitir posto aqui com o resultado.

    Abraço

  3. ok. Funcionando. Era meu servidor que estava em php4 ainda e não reconhecia a função “simplexml_load_file()”. Agora estou com php5 e funfou.

    Outra coisa, como faço para mostrar por exemplo só as três últimas notícias do site?

  4. Kra faz uma condição dentro do foreach

    tipo…

    $max = 3; /*$max e o numero de noticias q vc quer exibir*/
    $cont = 0;
    /*Codigo*/

    foreach($xml->channel->item as $item){
    if($cont < $max){
    echo /*Codigo de exibição*/;
    }
    $cont++;
    }

    /*Codigo*/

    Entendeu???

    Se eu descobrir uma forma melhor posto aki…

    Valeu mesmo!!!

    Abraço

  5. cara eu segui os passos e publiquei o arquivo. php no site, mas dah esse erro:

    “Warning: simplexml_load_file() [function.simplexml-load-file]: URL file-access is disabled in the server configuration in /home/usr/public_html/rss.php on line 3

    Warning: simplexml_load_file(http://maurocesarsl.wordpress.com/rss) [function.simplexml-load-file]: failed to open stream: no suitable wrapper could be found in /home/usr/public_html/rss.php on line 3

    Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity “http://maurocesarsl.wordpress.com/rss” in /home/usr/public_html/rss.php on line 3

    Warning: Invalid argument supplied for foreach() in /home/usr/public_html/rss.php on line 6


Deixe um comentário

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Blog no WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.