aquí estamos de nuevo, hoy os escribo porque recientemente he necesitado crear una calculadora de divisas los valores de estos en tiempo real. Para ello me he ayudado de las API de Google y Yahoo, reduncia por si una falla.
Las instrucciones que use son las que encontre en estos 2 enlaces:
Para resumiros lo que hice fue llamar a la función de Google, si esta me daba un error, llamaba a la de Yahoo, si ambas me daban error la conversión será de 0 que ya lo controlaré más adelante.
function conversor_divisas_google($divisa_origen, $divisa_destino, $cantidad) { $cantidad = urlencode($cantidad); $divisa_origen = urlencode($divisa_origen); $divisa_destino = urlencode($divisa_destino); $url = "http://www.google.com/ig/calculator?hl=en&q=$cantidad$divisa_origen=?$divisa_destino"; $rawdata = file_get_contents($url); $data = explode('"', $rawdata); $error = $data['5']; $data = explode(' ', $data['3']); $var = $data['0']; $return = array('valor' => $var, 'error' => $error); return $return; } function conversor_divisas_yahoo($divisa_origen, $divisa_destino, $cantidad) { $url = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=' . $divisa_origen . $divisa_destino . '=X'; $handle = @fopen($url, 'r'); if ($handle) { $result = fgets($handle, 4096); fclose($handle); } $array = explode(',', $result); $error = ""; $valor = $array[1] * $cantidad; if ($valor == 0) $error = "Fallo yahoo"; $return = array('valor' => $valor, 'error' => $error); return $return; } function conversor_divisas($divisa_origen, $divisa_destino, $cantidad) { $google = conversor_divisas_google($divisa_origen, $divisa_destino, $cantidad); if (!empty($google["error"])) { $yahoo = conversor_divisas_yahoo($divisa_origen, $divisa_destino, $cantidad); if (!empty($google["error"])) { $valor = 0; } else { $valor = $yahoo["valor"]; } } else { $valor = $google["valor"]; } return round($valor, 3); } echo "\n" . conversor_divisas("USD", "EUR", 1) . "\n";
El orden de las llamadas se decidío después de ver los tiempos de respuestas de cada API
Espero que os sea de ayuda
Nos leemos