php實現(xiàn)國際匯率兌換接口
來源:昆明多彩網(wǎng)絡公司 日期:2011-04-10 閱讀: 發(fā)表評論
首先介紹一個網(wǎng)站:http://xurrency.com/,該網(wǎng)站是目前大家用的最多的匯率換算網(wǎng)站,查詢出來的結果權威準確無誤。
它們有提供匯率換算api,地址是http://xurrency.com/api,只需要將該網(wǎng)址改成類似這樣的: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次就需要購買商業(yè)授權才行,授權的key寫在網(wǎng)址后面即可,對于一個商業(yè)網(wǎng)站來說一天查詢10次肯定不行的,所以此路不通。
http://xurrency.com/在自身網(wǎng)站上提供了免費查詢的功能,但是查詢結果并不是api的形式,所以我們需要加工一下才能提供給我們自己的網(wǎng)站使用。主要使用了php中的file_get_contents函數(shù)和正則過濾功能。
<?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為金額數(shù)量,to為目標貨幣的代號,F(xiàn)rom=CNY中的CNY為人民幣的代號,這里是直接寫死在了網(wǎng)址后面的參數(shù)上。通過正則將查詢出來的結果過濾到我們想要的結果,然后呈現(xiàn)出來。目標達到。
在網(wǎng)站制作的時候php的file_get_contents函數(shù)和正則功能可以將幾乎所有網(wǎng)站的結果處理成我們想要的效果,弊端是需要考慮到另外一個網(wǎng)站的網(wǎng)速,同時如果服務器總是頻繁讀取另外一個網(wǎng)站數(shù)據(jù)的話可能會導致服務器ip被封,在沒有必要的時候,可以采用數(shù)據(jù)庫或者cookie結合來做,盡量減少讀取外部網(wǎng)站的頻率。
發(fā)表評論評論列表(有 條評論)