Получение данных о конвертации валюты из Yahooapis теперь, когда iGoogle нет
До вчерашнего дня у меня был прекрасно работающий сайт / приложение для организации бюджета, работающий с iGoogle.
Через PHP, используя следующую маленькую строку
file_get_contents('http://www.google.com/ig/calculator?hl=en&q=1usd=?eur');
и похоже я смог получить все, что мне было нужно.
На сегодняшний день это больше не работает. Когда я посмотрел на проблему, произошло то, что Google удалил iGoogle. Вот досада!
Во всяком случае, я искал в другом месте, но я не могу найти ничего, что соответствует моим потребностям. Я ДЕЙСТВИТЕЛЬНО хотел бы просто исправить это и запустить его снова, просто переключив эту одну строку кода (то есть изменив адрес Google на адрес какого-либо другого доступного API валюты), но, похоже, никто этого не делает.
Кажется, что API от rate-exchange.appspot.com может быть аналогом iGoogle, но, увы, он никогда не работает. Я продолжаю получать сообщение «Over Quota».
(Здесь возникает первоначальный вопрос: кто-нибудь знает простой, надежный API iGoogle-sort?)
Таким образом, я думаю, что естественной вещью будет функция Yahoo YQL (по крайней мере, я полагаю, что она настолько надежна).
Запросы Yahoo выглядят так:
http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ("USDEUR", "USDJPY", "USDBGN")&env=store://datatables.org/alltableswithkeys
То, что я действительно не могу понять, как разобрать эти данные. Он выводит XML.
Я имел обыкновение иметь это:
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;
}
Таким образом, пользователь смог получить обменный курс из валюты ввода, такой как «доллар США», и валюты вывода, такой как «евро», на определенную сумму денег. Как я уже сказал, до вчерашнего вечера все работало без сбоев.
Есть идеи?