ronza 1 Denunciar post Postado Outubro 14, 2013 Galera, alguém conhece alguma API para conversão de moedas onde eu possa resgatar o valor do dólar com relação ao real? Só encontrei o método em que você pega o código fonte de um site, mas assim é muito arriscado, pois o site pode ser modificado a qualquer momento. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Outubro 14, 2013 A do Google. Ela é retornada em JSON. http://www.google.com/ig/calculator?hl=en&q=100{moeda1}=?{moeda2} Há algum tempo eu havia feito uma classe para isso. Se quiser usar: abstract class Converter{ protected $valueWithCurrency; protected $toCurrency; protected $convertedValue; public function __construct( $valueWithCurrency, $toCurrency ){ $this->valueWithCurrency = $valueWithCurrency; $this->toCurrency = $toCurrency; } public function getConvertedValue(){ return $this->convertedValue; } abstract public function convert(); } class GoogleCurrencyConverter extends Converter{ private $contents; private $jsonResult; public function convert(){ $this->getGoogleCurrencyConverterContents(); $this->convertToValidJson(); $this->convertedValue = $this->jsonResult->rhs; } private function getGoogleCurrencyConverterContents(){ $url = sprintf( "http://www.google.com/ig/calculator?hl=en&q=%s=?%s", trim( str_replace( ' ', '', $this->valueWithCurrency ) ), trim( $this->toCurrency ) ); $this->contents = file_get_contents( $url ); } private function convertToValidJson(){ $str_replace = array( 'lhs' => '"lhs"', 'rhs' => '"rhs"', 'error' => '"error"', 'icc' => '"icc"' ); $newContents = str_replace( array_keys( $str_replace ), array_values( $str_replace ), $this->contents ); $this->jsonResult = json_decode( $newContents ); } } Exemplo de uso: $converter = new GoogleCurrencyConverter( '1USD', 'BRL' ); $converter->convert(); $value = $converter->getConvertedValue(); As siglas das moedas você encontra aqui: :seta: https://archive.org/stream/currencies/currencies.txt Compartilhar este post Link para o post Compartilhar em outros sites
raonibs 64 Denunciar post Postado Outubro 14, 2013 O cambio flutua, logo você quer uma função em que você precise setar manualmente o valor atual do real, euro, dolar, etc? Ou você uma API em que você atualiza os valores automaticamente através de um site? Compartilhar este post Link para o post Compartilhar em outros sites
ronza 1 Denunciar post Postado Outubro 14, 2013 Raoni, eu gostaria de resgatar o valor do real para 1 dólar. Gabriel, muito obrigado pela sua ajuda! Só tive um probleminha com seu código, eu queria que aparecesse somente números, e não escrito Brazil e nem real. Mas isto eu me viro. E outra coisa, eu vi que você utilizou o file_get_contents, não é arriscado? Pois usarei em um comércio eletrônico, que depende dessas informações! Andei pesquisando e encontrei uma API do yahoo que parece ser interessante, é parecido com comandos sql, já ouviram falar? É o Yql. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Outubro 14, 2013 Não, eu nunca havia ouvido falar. Vou dar uma conferida depois. :D Compartilhar este post Link para o post Compartilhar em outros sites
ronza 1 Denunciar post Postado Outubro 15, 2013 Consegui fazer o que eu queria utilizando o YQL, depois colo o código aqui Valeu pela ajuda pessoal! Compartilhar este post Link para o post Compartilhar em outros sites
ronza 1 Denunciar post Postado Outubro 17, 2013 Simples e funcional: //pegando xml $xml = simplexml_load_file("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22USDBRL%22)&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys"); $dolar = $xml->results->rate->Rate; echo $dolar; Compartilhar este post Link para o post Compartilhar em outros sites