最近做一个区块链钱包项目,里面有需要获取实时汇率的地方,但是找到了大部分都是收费的,就算是免费也需要注册账号,太麻烦了,那些接口功能是很多,但是项目里只需要一个汇率,所以多方查找,用了百度的方式来获取数据,也可以保证数据的准确性,这里把方法分享一下下。
/**
* @param $from
* @param $to
* @param $amount
* @return string
* 获取实时汇率(测试中) 默认为美元和人民币的汇率
*/
public function convertCurrency($from = 'USD', $to = 'CNY', $amount = 1){
$r_key = $this->currencyExchangeRate();
$number = by::redis()->get($r_key);
if ($number) {
return $number;
}
$data = file_get_contents("http://www.baidu.com/s?wd={$from}%20{$to}&rsv_spt={$amount}");
preg_match("/<div>1\D*=(\d*\.\d*)\D*<\/div>/",$data, $converted);
$converted = preg_replace("/[^0-9.]/", "", $converted[1]);
$number = number_format($converted, 4);
if (empty($number)) {
$number = 7.1114;
}
by::redis()->set($r_key, $number);
by::redis()->expire($r_key, 3600);
return $number;
}
0 条评论