最近做一个区块链钱包项目,里面有需要获取实时汇率的地方,但是找到了大部分都是收费的,就算是免费也需要注册账号,太麻烦了,那些接口功能是很多,但是项目里只需要一个汇率,所以多方查找,用了百度的方式来获取数据,也可以保证数据的准确性,这里把方法分享一下下。

/**
     * @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;
    }

分类: PHP

0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据