直到昨天,我还有一个与 iGoogle 合作的完美预算管理网站/应用程序。
通过 PHP,使用下面的小行
file_get_contents('http://www.google.com/ig/calculator?hl=en&q=1usd=?eur');
和类似的我能够得到我需要的一切。
到今天为止,这不再有效。当我调查这个问题时,发生的事情是谷歌已经淘汰了 iGoogle。无赖!
无论如何,我在别处四处寻找,但找不到任何适合我需要的东西。我真的很想通过切换这行代码(即用其他可用货币 API 的地址更改 Google 地址)来修复它并让它再次运行,但似乎没有。
来自 rate-exchange.appspot.com 的 API 看起来可能是 iGoogle 的模拟,但是,唉,它永远不会起作用。我不断收到“超过配额”的消息。
(这里有一个最初的问题:有人知道一个简单、可靠的 iGoogle-sort API 吗?)
所以我想雅虎 YQL 功能是很自然的事情(至少我认为它是可靠的)。
雅虎的查询如下所示:
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;
}
因此,用户能够从输入货币(例如“USD”)和输出货币(例如“EUR”)获取特定金额的汇率。正如我所说,直到昨天晚上,这一切都在顺利进行。
有任何想法吗?