我正在建立一个在线订购系统,但我在澳大利亚,对于国际客户,我想以美元或欧元显示价格,这样他们就不必花心思从澳元转换。
有谁知道我是否可以通过PHP脚本访问的一种易于解析的格式从网上提取最新汇率?
更新:我现在编写了一个实现此目的的PHP类。您可以从我的网站上获取代码。
我正在建立一个在线订购系统,但我在澳大利亚,对于国际客户,我想以美元或欧元显示价格,这样他们就不必花心思从澳元转换。
有谁知道我是否可以通过PHP脚本访问的一种易于解析的格式从网上提取最新汇率?
更新:我现在编写了一个实现此目的的PHP类。您可以从我的网站上获取代码。
Answers:
您可以从yahoo以简单的格式获取货币换算:
例如,将GBP转换为EUR:
http://download.finance.yahoo.com/d/quotes.csv?s=GBPEUR=X&f=sl1d1t1ba&e=.csv
这个答案很晚,但是以上答案中缺少一些关键信息。
如果您想向客户显示准确的价格,那么了解外汇汇率的工作方式非常重要。
大多数外汇服务仅报价即期汇率(介于买入价和卖出价之间)。现货是汇率的一种简写,但没人能得到现货,因为您只能以买价卖出或以要价买入。通常,您通常希望它们之间的价差至少为1%,因此对您的客户而言,即期汇率为0.5%的折扣。
但这并不仅限于此,您的客户几乎可以肯定正在使用信用卡,而Visa / Mastercard / Amex都收取外汇费用。以我的经验来看,这些都是微不足道的,至少为2.5%。例如,澳大利亚花旗银行收取3.3%的费用。这些价格因卡而异,因此您无法预测客户将要支付的最终价格。
如果要根据汇率为客户报价“准确的”价格,则需要考虑上述因素并提供缓冲,以免最终收取的费用不超过所报价的价格。
FWIW,我一直在将F / X转换指示的数字增加4%。
可能会很高兴添加
http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
到列表。
欧洲中央银行根据欧洲中央银行系统内部和外部中央银行之间的日常日常协调程序提供的官方参考汇率。
该提要采用XML和其他一些格式。
更新通常在欧洲央行时间2.15 pm(14:15)(=法兰克福时间)进行。
最近,我使用Google的API实现了相同的操作。查询URL如下所示:
http://www.google.com/ig/calculator?hl=en&q=1GBP=?USD
它需要3个参数。第一个参数是金额,然后是您要转换的ISO 4217货币代码,等号和问号以及要转换成的货币代码。您可以在此处找到Google支持的代码列表。对查询的响应将如下所示:
{lhs: "1 British pound",rhs: "1.6132 U.S. dollars",error: "",icc: true}
这是不言自明的,因此在这里我将不做详细介绍。这就是我处理查询响应的方式:
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;
}
我敢肯定这不是最优雅的方法,但是我对PHP还是很陌生。希望能帮助到你!
另一个非常棒的免费开源链接是:
https://raw.github.com/currencybot/open-exchange-rates/master/latest.json
(我在这里找到了它:http : //josscrowcroft.github.com/open-exchange-rates/)
[更新] :
Open Exchange Rates项目数据已从GitHub移走。
现在,请访问: http://openexchangerates.org/
数据以JSON格式,请访问: http://openexchangerates.org/latest.json
没有访问费,没有速率限制,没有丑陋的XML-只是免费的,每小时更新的JSON格式的汇率。
现在这不是“完全”免费的。新的许可规定每月允许最多点击1000次,然后您需要付费。如果您要使用单一货币转换器(基本功能),还需要付费。
[注意:您可能也想看看这个答案。]
我将开放数据表添加到YQL,您可以使用它从yahoo.finance检索汇率数据。
逗号分隔格式比“ where pair in('EURUSD','GBPUSD')”更可取,但是无论如何,您可以同时使用它们甚至将它们混合在一起。
该站点免费提供货币兑换服务:
试试这个 RESTful(我不确定这是否真的是REST,因为我最初是从SOAP获得的,所以我只是尝试使用HTTP GET访问它)
要获取汇率,您可以使用以下方法:
function get_exchange_rate($from, $to){
$data = file_get_contents("http://www.google.com/ig/calculator?hl=en&q=1{$from}=?{$to}");
preg_match('/rhs\:\s?"([0-9\.]+)/', $data, $m);
return $m[1];
}
您可以在其中添加数据库缓存,以确保不会受到限制等。
正如其他帖子/评论所指出的那样,您将使用此汇率来计算您的货币
我不得不补充:
http://www.exchangerate-api.com/
完全使用干净的RESTful API即可轻松完成,注册过程需要5秒钟。包括大多数主要语言的编码示例,大多数示例为2-3行。
费率每小时更新一次,因此对于大多数用途而言还算不错,而且您可以每月7美元的价格获得30000个每月查询。我再也不需要这些了,但是对于较大的数量来说,价格是非常合理的。
这对我有用。
货币汇率API:http : //currency-api.appspot.com/