首页 > 网站开发 > [实际应用+实现实例]通过Yahoo API获取实时货币汇率代码

[实际应用+实现实例]通过Yahoo API获取实时货币汇率代码

最后更新: 2015-07-08    浏览次数:     

示例演示
实际应用:

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

实例实现:
雅虎(吖唿~~~~ Yahoo!)网站上提供了各种金融数据的接口, 有股票/能源/期货, 当然也有货币外汇汇率
货币汇率的接口为:

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获取实时货币汇率代码 - diê-biāng - 1

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;
?>