Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

yudi_loko

[Resolvido] Script para Cotações (Dollar e Euro)

Recommended Posts

Opa pessoal, bom eu me deparei com essa dificuldade quando não achei nenhum RSS ou .xml atualizado com esses dados que são bem fundamentais para portais de notícias e etc. Ai estou disponibilizando aqui!

 

Ele funciona assim, ele busca as informações no endereço: http://economia.uol.com.br/cotacoes/cambio.jhtm

Resgata em variáveis e com essas variáveis eu gero um XML. Assim com isso uso o CronTab do servidor que atualiza o mesmo todo dia e assim disponibilizo os dados para meus clientes.

 

$ch = curl_init();
$timeout = 10;
curl_setopt($ch, CURLOPT_URL, 'http://economia.uol.com.br/cotacoes/cambio.jhtm');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FILETIME, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$output = curl_exec($ch);
$response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

$doc = new DOMDocument();
$doc->formatOutput = true;
$doc->loadHTML($output);

$xpath = new DOMXpath($doc);
$dollarcompra = $xpath->query( "//div[@class='tabela']/table/tbody/tr/td" )->item( 0 )->nodeValue;
$dollarvenda  = $xpath->query( "//div[@class='tabela']/table/tbody/tr/td" )->item( 1 )->nodeValue;
$eurocompra   = $xpath->query( "//div[@class='tabela']/table/tbody/tr/td" )->item( 6 )->nodeValue;
$eurovenda    = $xpath->query( "//div[@class='tabela']/table/tbody/tr/td" )->item( 7 )->nodeValue;

$xml  = '<?xml version="1.0" encoding="ISO-8859-1"?>';
$xml .= '<cotacoes atualizado="'.date('d/m/Y').' às '.date('H:m:s').'">';

$xml .= '<dollar>';
$xml .= '<compra>'.htmlspecialchars(utf8_decode($dollarcompra)).'</compra>';
$xml .= '<venda>'.htmlspecialchars(utf8_decode($dollarvenda)).'</venda>';
$xml .= '</dollar>';

$xml .= '<euro>';
$xml .= '<compra>'.htmlspecialchars(utf8_decode($eurocompra)).'</compra>';
$xml .= '<venda>'.htmlspecialchars(utf8_decode($eurovenda)).'</venda>';
$xml .= '</euro>';

$xml .= '</cotacoes>';

file_put_contents('cotacao.xml',$xml);

 

Valeu, espero que o pessoal possa aproveita!

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.