Obtendo dados de conversão de moeda do Yahooapis agora que o iGoogle desapareceu

Até ontem, eu tinha um site / aplicativo de orçamento perfeito para trabalhar com o iGoogle.

Através do PHP, usando a seguinte pequena linha

file_get_contents('http://www.google.com/ig/calculator?hl=en&q=1usd=?eur');

e semelhante, consegui tudo o que precisava.

A partir de hoje, isso não está mais funcionando. Quando analisei o problema, o que aconteceu foi que o Google se aposentou do iGoogle. Vadio!

De qualquer forma, eu estava procurando em outro lugar, mas não consigo encontrar nada que atenda às minhas necessidades. Eu adoraria simplesmente consertá-lo e colocá-lo novamente em funcionamento simplesmente trocando essa linha de código (ou seja, mudando o endereço do Google com o endereço de outra API de moeda disponível), mas parece que nenhum deles funciona.

A API do rate-exchange.appspot.com parece que poderia ser um analógico do iGoogle, mas, infelizmente, nunca funciona. Eu continuo recebendo uma mensagem "Over Quota".

(Aqui vem uma pergunta inicial: alguém sabe de uma API simples, confiável, do tipo iGoogle?)

Então eu acho que a coisa natural seria o recurso Yahoo YQL (pelo menos eu suponho que seja tão confiável).

As consultas do Yahoo são assim:

http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ("USDEUR", "USDJPY", "USDBGN")&env=store://datatables.org/alltableswithkeys

O que eu realmente não consigo descobrir é como analisar esses dados. Produz um XML.

O que eu costumava ter é isso:

function exchange($inputAmount,$inputCurrency,$outputCurrency) {
    $exchange = file_get_contents('http://www.google.com/ig/calculator?hl=en&q='.$inputAmount.$inputCurrency.'=?'.$outputCurrency);
    $exchange = explode('"', $exchange);
    $exchange = explode('.', $exchange['3']);
    $exchange[0] = str_replace(" ", "",preg_replace('/\D/', '',  $exchange[0]));
    if(isset($exchange[1])){
        $exchange[1] = str_replace(" ", "",preg_replace('/\D/', '', $exchange[1]));
        $exchange = $exchange[0].".".$exchange[1];        
    } else{
        $exchange = $exchange[0];
    }
    return $exchange;
}

Assim, o usuário conseguiu obter a taxa de câmbio de uma moeda de entrada, como "USD", e uma moeda de saída, como "EUR", em uma quantia específica de dinheiro. Como eu disse, isso estava funcionando até ontem à noite.

Alguma ideia?

questionAnswers(3)

yourAnswerToTheQuestion