当前位置:
首页 > 技术 > 通过Yahoo API获取实时货币汇率代码

通过Yahoo API获取实时货币汇率代码

实际应用:

一些国际的电子商务网站, 货币结算时, 需要考虑当地客户支付的货币种类.
例如, 面向中国客户的欧洲网站, 网站产品都是以欧元结算的, 当中国客户通过网站的支付宝接口支付时, 只能支付人民币, 这时, 网站可根据当前人民币兑欧元的汇率, 将产品的欧元价格换算成人民币价格, 然后在通过支付宝结算.

实例实现:

雅虎网站上提供了各种金融数据的接口, 有股票/能源/期货, 当然也有货币外汇汇率

货币汇率的接口为:

http://download.finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=EURCNY=x

参数s=EURCNY, 欧元换人民币

以上接口在浏览器中可以返回一个quotes.csv文件, 得到数据为: “EURCNY=x”,6.7561,”5/27/2015″,”7:54pm”

通过Yahoo API获取实时货币汇率代码

yahoo 汇率接口返回数据

我们可以根据这个接口, 及返回的汇率数据来处理货币换算的功能.

以下是代码和说明:

<?php
header("Content-type: text/html; charset=utf-8"); 
$file = fopen('http://download.finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=EURCNY=x','r');	//参数s=EURCNY, 欧元换人民币, 根据需要更换
while ($data = fgetcsv($file))      //读取CSV文件里的每一行内容
{
    $goods_list[] = $data;
}
$shijian = $goods_list[0][2] .' '. $goods_list[0][3];  	//根据 quotes.csv文件得到的数据, 当前时间 在3,4列位置
$huilv = $goods_list[0][1];  //根据 quotes.csv文件得到的数据, 汇率 在2列位置 
echo "当前时间: $shijian, 1欧元可换: $huilv 元人民币<BR>";
fclose($file);
?>

也可以通过下面的代码, 将CSV文件中的第一行数据全部读取出来

<?php
//函数参数说明: $file_name: csv文件名/地址, $line: 要读取的行数
function get_csv_line( $file_name, $line )
{
    $n = 0;
    $handle = fopen($file_name,'r');
    if ($handle)
    {
        while (!feof($handle))
        {
            ++$n;
            $out = fgets($handle, 4096);
            if($line==$n) break;
        }
        fclose($handle);
    }
    if( $line==$n)
        return $out;
    return false;
}
 
//输出第一行数据
echo get_csv_line("http://download.finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=EURCNY=x+AUDUSD=x", 1); 
 
exit;
?>

同时获取多国汇率代码

header("Content-type: text/html; charset=utf-8"); 
$file = fopen('http://download.finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=CNYUSD=x+USDCNY=x+CNYEUR=x+EURCNY=x','r'); //参数s=EURCNY, 欧元换人民币, 根据需要更换
while ($data = fgetcsv($file)) //读取CSV文件里的每一行内容
{
    $goods_list[] = $data;
}

foreach($goods_list as $k => $v)
{
    $Currency = str_replace('=x', '', $v[0]);
    $fromCurrency = substr($Currency, 0, 3);
    $toCurrency = substr($Currency, -3, 3);
    $ExchangeRate = $v[1];
    $Time = $v[2] .' '. $v[3];
    echo $fromCurrency.' 1 = ' . $toCurrency .' '. $ExchangeRate . ' Update Time: '.$Time . '<br>';
}

fclose($file);

通过Yahoo API获取实时货币汇率代码:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!