云南网站建设创新企业 昆明多彩网络公司

在线qq:540105663

php实现国际汇率兑换接口

来源:昆明多彩网络公司 日期:2011-04-10 阅读: 发表评论

国际每日汇率都在更新,每日当中也会有多汇率,在一些英文站中就需要实现随时更新汇率达到货币即时换算的目的。

 首先介绍一个网站:http://xurrency.com/,该网站是目前大家用的最多的汇率换算网站,查询出来的结果权威准确无误。

它们有提供汇率换算api,地址是http://xurrency.com/api,只需要将该网址改成类似这样的:http://xurrency.com/api/usd/cny/1即可得到汇率转换后的结果。返回结果如:{"result":{"updated_at":"2011-04-08T19:10:00Z","value":6.5363,"target":"cny","base":"usd"},"code":0,"status":"ok"},是json格式,可以给php和js共用。但是该api的免费版本有一个限制,就是一个ip单日之内只能查询10次,超出10次就需要购买商业授权才行,授权的key写在网址后面即可,对于一个商业网站来说一天查询10次肯定不行的,所以此路不通。

http://xurrency.com/在自身网站上提供了免费查询的功能,但是查询结果并不是api的形式,所以我们需要加工一下才能提供给我们自己的网站使用。主要使用了php中的file_get_contents函数和正则过滤功能。

<?php
$Amount = $_GET['Amount'];
$to = $_GET['to'];
$url = "http://www.xe.com/ucc/convert.cgi?Amount=$Amount&From=CNY&To=$to";
$content = file_get_contents($url);
$regex = "/class=\"rate\" >(.+?) ".$to."/i"; //正则表达式.
if(preg_match_all($regex, $content, $matches)) {
echo $Amount.' CNY = '.$matches[1][0].' '.$to;
}
?>

Amount为金额数量,to为目标货币的代号,From=CNY中的CNY为人民币的代号,这里是直接写死在了网址后面的参数上。通过正则将查询出来的结果过滤到我们想要的结果,然后呈现出来。目标达到。

网站制作的时候php的file_get_contents函数和正则功能可以将几乎所有网站的结果处理成我们想要的效果,弊端是需要考虑到另外一个网站的网速,同时如果服务器总是频繁读取另外一个网站数据的话可能会导致服务器ip被封,在没有必要的时候,可以采用数据库或者cookie结合来做,尽量减少读取外部网站的频率。
 

发表评论评论列表(有 条评论)