Recientemente implementé lo mismo, pero usando la API de Google. La URL de consulta tiene este aspecto:
http://www.google.com/ig/calculator?hl=en&q=1GBP=?USD
Toma 3 parámetros. El primer parámetro es la cantidad, seguido del código de moneda ISO 4217 desde el que está convirtiendo, un signo igual y un signo de interrogación, y el código de moneda al que está convirtiendo. Puede encontrar una lista de códigos compatibles con Google aquí . La respuesta a la consulta se verá así:
{lhs: "1 British pound",rhs: "1.6132 U.S. dollars",error: "",icc: true}
Esto se explica por sí mismo, por lo que no entraré en detalles aquí. Así es como manejé la respuesta de la consulta:
function convert_currency($amount, $from_code, $to_code){
ini_set('max_execution_time', 60);
$temp = 'http://www.google.com/ig/calculator?hl=en&q=' . $amount . $from_code . '=?' . $to_code;
$response = file_get_contents($temp);
$result_string = explode('"', $response);
$final_result = $result_string['3'];
$float_result = preg_replace("/[^0-9\.]/", '', $full_result);
return $float_result;
}
Estoy seguro de que está lejos de ser la forma más elegante de hacer esto, pero soy bastante nuevo en PHP. ¡Espero eso ayude!