方法一:中国银行版本,简单粗暴

//中国银行汇率接口,简单粗暴
//参数pjname:1316美元1326欧元1314英镑
public function getExchangeRate()
{$date = date("Y-m-d", time());//获得页面代码$data = file_get_contents("http://srh.bankofchina.com/search/whpj/search.jsp?erectDate=".$date."&nothing=".$date."&pjname=1316&page=1");//去掉非字符$data = str_replace(array(" ","\r","\n","\t"), "", $data);//得到汇率代码preg_match('/<tr>[\s]*<td>美元<\/td>[\s]*<td>[\s|\S]*<\/td>[\s]*<\/tr>/',$data, $converted);//开始各种调整格式,为了整理为数组$data = str_replace("</tr><tr>", ";", $converted[0]);$data = str_replace(array("<tr>","</tr>"), "", $data);$data = str_replace("</td><td>", ",", $data);$data = str_replace(array("<td>","</td>"), "", $data);$rateList = explode(";", $data);$rate = explode(",", $rateList[0]);//$rate [0] 国家 [1] 现汇买入价 [2]现钞买入价[3]现汇卖出价[4]现钞卖出价[5]外管局中间价[6]中行折算价$rate = $rate[3];$rate = round(($rate/100),2);if(is_numeric($rate))return $rate;else return false;
}

方法二:聚合数据版本,不稳定,但是可用。主要是有访问次数限制。

public function exchangeRate(){$key="390*****************************";//32位密钥需要申请$url = "http://op.juhe.cn/onebox/exchange/currency";$params = array("from" =>"USD",                                                                                     //转换汇率前的货币代码"to" => "CNY",                                                                                          //转换汇率成的货币代码"key" => $key,                                                                                          //应用APPKEY(应用详细页查询));$paramstring = http_build_query($params);$content =$this-> juhecurl($url,$paramstring);$result = json_decode($content,true);if($result){if($result['error_code']=='0'){$rate = $result['result']['0']['result'];param::set_cookie('rate',$rate,86400+SYS_TIME);}else{$rate = 6.70;param::set_cookie('rate',$rate,86400+SYS_TIME);}}else{$rate = 6.70;param::set_cookie('rate',$rate,86400+SYS_TIME);}return $rate;
}public function juhecurl($url,$params=false,$ispost=0){$httpInfo = array();$ch = curl_init();curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' );curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );curl_setopt( $ch, CURLOPT_TIMEOUT , 60);curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);if( $ispost ){curl_setopt( $ch , CURLOPT_POST , true );curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );curl_setopt( $ch , CURLOPT_URL , $url );}else{if($params){curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );}else{curl_setopt( $ch , CURLOPT_URL , $url);}}$response = curl_exec( $ch );if ($response === FALSE) {//echo "cURL Error: " . curl_error($ch);return false;}$httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );$httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );curl_close( $ch );return $response;
}

php环境下,两种汇率接口,已经测试通过相关推荐

  1. android登录加密传输,android环境下两种md5加密方式(示例代码)

    在平时开发过程中,MD5加密是一个比較经常使用的算法,最常见的使用场景就是在帐号注冊时,用户输入的password经md5加密后,传输至server保存起来.尽管md5加密经经常使用.可是md5的加密 ...

  2. Win32环境下两种用于C++的线程同步类(上)

    线程同步是多线程程序设计的核心内容,它的目的是正确处理多线程并发时的各种问题,例如线程的等待.多个线程访问同一数据时的互斥,防死锁等.Win32提供多种内核对象和手段用于线程同步,如互斥量.信号量.事 ...

  3. 单例模式的5种实现方式,以及在多线程环境下5种创建单例模式的效率

    这段时间从头温习设计模式.记载下来,以便自己复习,也分享给大家. [java] view plaincopy package com.iter.devbox.singleton; /** * 饿汉式 ...

  4. centos下两种方法安装git

    centos 5 64位下两种方法安装git 这里来给大家介绍下编译安装和yum安装git.   系统:centos 5.5 64位   需要的软件包:git-latest.tar.gz epel-r ...

  5. Linux环境下几种常用的文件系统

    Linux环境下几种常用的文件系统: 1.ext2 ext2是为解决ext文件系统的缺陷而设计的可扩展的.高性能的文件系统,又被称为二级扩展文件系统.它是Linux文件系统中使用最多的类型,并且在速度 ...

  6. 早教产品微商怎么做精准引流?早教机构引流活动可以分为线上和线下两种

    早教产品微商怎么做精准引流?早教机构引流活动可以分为线上和线下两种 一般来说,根据媒介的不同,早教机构引流活动可以分为线上和线下两种,线上的引流方式有:微信.自媒体.短视频;线下的引流方式有地推和异业 ...

  7. 《Spark商业案例与性能调优实战100课》第9课:商业案例之通过Spark SQL 下两种不同方式实现口碑最佳和最热门电影比较

    <Spark商业案例与性能调优实战100课>第9课:商业案例之通过Spark SQL 下两种不同方式实现口碑最佳和最热门电影比较

  8. cad模型轻量化_CAD环境下一种支持大装配的产品模型轻量化技术

    CAD环境下一种支持大装配的产品模型轻量化技术 针对CAD环境下操作复杂大装配常出现加载和显示困难的问题,提出了一种CAD环境下的轻量化解决方案,将参数化表达和多细节层次(LOD)轻量表达共同定义于产 ...

  9. 正则 8-18位长度,数字,字母,字符 任意两种,不含中文测试通过

    原文:正则 8-18位长度,数字,字母,字符 任意两种,不含中文测试通过 String regex = "^(?!^(\\d+|[a-zA-Z]+|[~!@#$%^&*?]+)$)^ ...

最新文章

  1. 趣学车签约神策数据,数据赋能学车“新体验”
  2. 区位码\机器码\内码关系
  3. Mac OS X 10.10更新及体验
  4. 华为云GaussDB,11.11让企业无后顾之忧
  5. Scrum之 回顾会议
  6. 【Python】列表类型操作函数和方法
  7. Gin实践 番外 Golang交叉编译
  8. think php5关联模型,thinkphp5中关联模型的定义与使用方法
  9. linux shell 脚本 入门到实战详解[⭐建议收藏!!⭐]
  10. 涉密计算机 桌面 及 屏保,符合国家保密要求的涉密计算机屏幕保护程序启动时间要求是不超10分钟 - 作业在线问答...
  11. RFC 2544阅读笔记
  12. Opencv颜色空间最全
  13. USB3.0接口定义浅析
  14. vscode 升级时失败 win10
  15. 利用MATLAB免费生成GIF
  16. 力扣每日一题:891. 子序列宽度之和(java)
  17. Java将PDF转为图片Jpg
  18. 【架构师技能篇】Worker初识
  19. Agile Office 365 免积分下载
  20. Jetson Nano B01 无界面初始化安装系统+飞桨(Paddle)v2.0

热门文章

  1. 光耦电流传输比(CTR)的理解
  2. BPDU网桥协议数据单元和STP生成树协议
  3. M システム - 笔记(4) -- 客户合作胜过合同谈判
  4. 可视化方向的几个期刊会议,供参考
  5. 芯片设计进阶之路——Reset深入理解
  6. dd命令磁盘对拷及备份
  7. 【QT项目】简易五子棋游戏(人机对战)— 完整源码
  8. Vue+Element动态生成新表单并添加验证
  9. 前端项目:基于Nodejs+vue开发实现高校学院网站系统
  10. 河南高中学业水平计算机,河南高中学业水平考试