Cotação atual do Dolar

Started by Anonymous, 13 de September , 2007, 05:47:39 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Anonymous

<?
/*
cotacaoDolar.php - script usado para extrair a cotação atual do dólar junto ao
banco central do governo federal

By: DARK BOMBER <crash_bomber_e@hotmail.com>
www.darkbomber.hpg.com.br
*/

error_reporting(15);

// o fopen também funciona para arquivos da rede, uau !
if(!$fp=fopen("http://www.bc.gov.br/htms/infecon/taxas/taxas.htm" ,"r" )) {
echo "Erro ao abrir a página de cotação" ;
exit ;
}

$conteudo = '';
while(!feof($fp)) { // leia o conteúdo da página
$conteudo .= fgets($fp,1024);
}
fclose($fp);

/*
Na expressão regular abaixo pego os dois números que tem o seguinte formato:
9,9999 (ex.: 2,8182)
O primeiro número é a taxa de compra e o segunda, taxa de venda
*/
eregi("([0-9],[0-9]{1,}).*([0-9],[0-9]{1,})",$conteudo,$saida);
list($lixo,$taxaCompra,$taxaVenda) = $saida;

echo "
<h3>Cotação atual do dólar</h3>
Taxa de compra: <b>$taxaCompra</b><br>
Taxa de venda : <b>$taxaVenda</b><br>
</pre>";
?>

Bom proveito! ;)

Magrinho Loko

Conselho:
Ou tu usa a lib curl ou usa a função file para exibir esses resultados. Fica mais profissional. (y)

Exemplo usando a função file:

<?php
$arquivo 
"http&#58;//www&#46;bcb&#46;gov&#46;br/htms/infecon/taxas/taxas&#46;htm";
$pon file($arquivo);
$quebra explode("<td ALIGN=CENTER class=\"fundoPadraoBClaro2\">"$pon[0&#93;);
$quebra2 explode("</td>"$quebra[1&#93;);
$data $quebra2[0&#93;;
$quebra3 explode("<td ALIGN=RIGHT class=\"fundoPadraoBClaro2\">"$pon[0&#93;);
$quebra4 explode("</td>"$quebra3[1&#93;);
$compra $quebra4[0&#93;;
$quebra5 explode("</td>"$quebra3[2&#93;);
$venda $quebra5[0&#93;;
?>

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; font-family: verdana; font-size: 8 pt" bordercolor="#111111" width="300" id="AutoNumber1">
 <tr>
   <td bgcolor="#D9C18A" style="border-style: solid; border-width: 1" bordercolor="#FFFFFF" align="center" width="85">
   Data</td>
   <td bgcolor="#D9C18A" style="border-style: solid; border-width: 1" bordercolor="#FFFFFF" align="center" width="106">
   Taxa de Compra</td>
   <td bgcolor="#D9C18A" style="border-style: solid; border-width: 1" bordercolor="#FFFFFF" align="center" width="107">
   Taxa de venda</td>
 </tr>
 <tr>
   <td bgcolor="#F5ECD6" style="border-style: solid; border-width: 1" bordercolor="#FFFFFF" width="85" align="center">
   <?=$data;?></td>
   <td bgcolor="#F5ECD6" style="border-style: solid; border-width: 1" bordercolor="#FFFFFF" width="106" align="center">
   <?=$compra;?></td>
   <td bgcolor="#F5ECD6" style="border-style: solid; border-width: 1" bordercolor="#FFFFFF" width="107" align="center">
   <?=$venda;?></td>
 </tr>
</table>

E para não perder a viagem, como exibir a cotação atual do Euro:

<?php

$csv 
file('http&#58;//www5&#46;bcb&#46;gov&#46;br/download/BC1200709140001346816&#46;csv');

foreach (
$csv as $line) {
    
/*
     * $date        = Data
     * $code        = Código da Moeda
     * $symbol      = Símbolo da Moeda
     * $type        = Tipo da Moeda
     * $tax_buy     = Taxa / Compra
     * $tax_sale    = Taxa / Venda
     * $parity_buy  = Paridade / Compra
     * $parity_sale = Paridade / Venda
     */

    
if (count(explode(';'$line)) > 1) {
        list(
$date$code$symbol$type$tax_buy$tax_sale$parity_buy$parity_sale) = explode(';'$line);
    }

    
// Converte data
    
$date        ereg_replace('([0-9&#93;{2})([0-9&#93;{2})([0-9&#93;{4})''\1/\2/\3'$date);

    
// Converte taxa de compra
    
$tax_buy     'R$' &#46; number_format(str_replace(',', '&#46;', $tax_buy), 5, ',', '');

    // Converte taxa de venda
    
$tax_sale    'R$' &#46; number_format(str_replace(',', '&#46;', $tax_sale), 5, ',', '');

    // Converte paridade de compra
    
$parity_buy  'R$' &#46; number_format(str_replace(',', '&#46;', $parity_buy), 5, ',', '');

    // Converte paridade de venda
    
$parity_sale 'R$' &#46; number_format(str_replace(',', '&#46;', $parity_sale), 5, ',', '');
    
    // Faça o que quiser daqui em diante&#46;&#46;&#46; &#58;D
    
print "$date - $tax_buy / $tax_sale - $parity_buy / $parity_sale<br />";
}

?>


Tenham uma boa estada no tópico.
Saudades do antigo Darkers.