Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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:
Carregando comentários...