Cotação do Dólar e outras moedas
Publicado por Fábio Berbert de Paula (última atualização em 02/12/2015)
[ Hits: 16.264 ]
Homepage: https://fabio.automatizando.dev
Download class.UOLCotacoes.php
Download 1445974778.class.UOLCotacoes.php (versão 2)
Download cotacao.html (versão 3)
Criei esta classe PHP para extrair as cotações das principais moedas usando como fonte de consulta o site de Economia da UOL.
Exemplo de uso:
<?
//importar a classe
require("class.UOLCotacoes.php");
$uol = new UOLCotacoes(); // criar uma instancia da classe
//receber os valores
list($dolarComercialCompra, $dolarComercialVenda, $dolarTurismoCompra, $dolarTurismoVenda, $euroCompra, $euroVenda, $libraCompra, $libraVenda, $pesosCompra, $pesosVenda) = $uol->pegaValores();
?>
A partir do código acima você já tem os valores de câmbio do Dólar, Euro, Libra e Pesos Argentino.
Versão 2 - Enviado por Jailson em 27/10/2015
Changelog: Removido a função split() que retornava aviso no PHP.
Download 1445974778.class.UOLCotacoes.php
Versão 3 - Enviado por Fábio Berbert de Paula em 02/12/2015
Changelog: Nova versão, mas desta vez usando somente jQuery.
<?
/*
class.uolCotacoes.php - classe usada para extrair as cotações de moedas
do dia junto ao site de Economia da UOL - economia.uol.com.br/cotacoes/
Autor: Fábio Berbert de Paula <fberbert@gmail.com>
http://www.vivaolinux.com.br/~fabio
17/01/2013
Versão: 1.0
*/
class UOLCotacoes {
public function pegaValores() {
// o fopen também funciona para arquivos da rede, uau!
if(!$fp=fopen("http://economia.uol.com.br/cotacoes/" ,"r" )) {
echo "Erro ao abrir a página de cotação" ;
return(0);
}
//variáveis de classe
$arrayValores = array();
//inicio do processamento - ler página
$uolHTML = "";
while(!feof($fp)) { // leia o conteúdo da página, uma linha por vez, armazene na variável uolHTML
$uolHTML .= fgets($fp);
}
fclose($fp);
/* o bloco do código HTML referente a cotação é assim:
<td class="pg-color4"><a href="http://economia.uol.com.br/cotacoes/cambio/dolar-comercial-estados-unidos/">Dólar com.</a></td>
<td>2,0435</td>
<td>2,0442</td>
Então o que farei é extrair os valores 2,0435 (compra) e 2,0442 (venda)
O mesmo conceito se repete para as demais cotações
*/
//array contendo as expressoes regulares que indicam cada moeda
$patterns = array(
"dolarComercial" => "/pg-color4.*dolar-comercial-estados-unidos/",
"dolarTurismo" => "/pg-color4.*dolar-turismo-estados-unidos/",
"euro" => "/pg-color4.*euro-uniao-europeia/",
"libra" => "/pg-color4.*libra-esterlina/",
"pesos" => "/pg-color4.*peso-argentina/",
);
$uolHTML = preg_replace("/.*div id=.cambio.>/", "", $uolHTML);
$uolHTML = preg_replace("/<tr>/", "\n<tr>", $uolHTML); //acrescentar quebra de linha
$uolHTML = preg_replace("/<td/", "\n<td", $uolHTML); //acrescentar quebra de linha
$arrayHTML = split("\n", $uolHTML);
//loop para cada moeda
while( list($moeda, $pattern) = each($patterns) ) {
$arrayHTML = split("\n", $uolHTML);
//loop por cada linha da pagina HTML
while ( list($indice, $linha) = each($arrayHTML) ) {
//se bloco HTML casa com a pattern da moeda do looping atual...
if (preg_match($pattern, $linha)) {
//print "Encontrei '$pattern' em: $linha\n\n";
//ler proxima linha
$linha = $arrayHTML[++$indice];
//pegar cotacao compra
preg_match("/<td>(.*)<\/td>/", $linha, $valor);
$compra = $valor[1];
//ler proxima linha
$linha = $arrayHTML[++$indice];
//pegar cotacao venda
preg_match("/<td>(.*)<\/td>/", $linha, $valor);
$venda = $valor[1];
//atribuindo valores ao array de retorno
array_push($arrayValores, $compra, $venda);
}
} // fim while
} // fim while
return($arrayValores);
} //fim function pegaValores
} //fim classe
?>
Gerando senhas dinamicamente com PHP
Validar CPF ou CNPJ na mesma função
Função que identifica acentos em palavras (strings)
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Assinador JNLP do Site Portal da Nota Fiscal Eletrônica (3)
O programa assinador digital (3)
Warcraft II Remastered no Linux? (2)









