Nesse artigo irei mostrar como ler arquivos XML internos e externos com PHP.
Usaremos um arquivo XML externo do site da DevMedia.
Os passos de nosso exemplo são os seguintes:
1 – Acesse a página “http://www.devmedia.com.br/feed/” e clique no RSS que você deseja exibir as notícias. Após clicar copie o link que será exibido em uma caixa de texto logo abaixo.
2 – Crie um arquivo php e coloque o código abaixo, alterando a variavel “$link” para o link que você copiou no passo alterior.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Notícias Dev Media</title> </head> <body> <h1>Notícias Dev Media</h1> <?php $link = "http://www.devmedia.com.br/xml/devmedia_full.xml"; //link do arquivo xml $xml = simplexml_load_file($link) -> channel; //carrega o arquivo XML e retornando um Array foreach($xml -> item as $item){ //faz o loop nas tag com o nome "item" //exibe o valor das tags que estão dentro da tag "item" //utilizamos a função "utf8_decode" para exibir os caracteres corretamente echo "<strong>Título:</strong> ".utf8_decode($item -> title)."<br />"; echo "<strong>Link:</strong> ".utf8_decode($item -> link)."<br />"; echo "<strong>Descrição:</strong> ".utf8_decode($item -> description)."<br />"; echo "<strong>Autor:</strong> ".utf8_decode($item -> author)."<br />"; echo "<strong>Data:</strong> ".utf8_decode($item -> pubDate)."<br />"; echo "<br />"; } //fim do foreach ?> </body> </html>
OBSERVAÇÂO IMPORTANTE
Em seu servidor é obrigatório que a função “allow_url_fopen” esteja habilitada. Caso não esteja, crie o arquivo “php.ini” na pasta onde esteja o script do nosso exemplo e coloque o seguinte código:
[PHP] allow_url_fopen = On
Pronto.
Lembrando que o foreach foi adaptado para ler as tags do arquivo xml do exemplo, caso as tags estiverem com nome diferente você deverá ter que adaptadas.