PHP调用API接口实现天气查询功能的示例


Posted in PHP onSeptember 21, 2017

天气预报查询接口API,在这里我使用的是国家气象局天气预报接口

使用较多的还有:新浪天气预报接口、百度天气预报接口、google天气接口、Yahoo天气接口等等。

1、查询方式

根据地名查询各城市天气情况

2.请求URL地址

http://route.showapi.com/9-2

3、接口参数说明:

一、系统级参数(所有接入点都需要的参数):

PHP调用API接口实现天气查询功能的示例

二、应用级参数(每个接入点有自己的参数):

PHP调用API接口实现天气查询功能的示例

4.返回参数

以JSON格式返回结果

1)系统级参数(所有接入点都会返回的参数)

2)应用级参数(系统级输出参数showapi_res_body字段中的json数据结构)

具体调用操作:

PHP中自带了处理json格式字符串的内置函数,下面做一个事例,并给出完整代码:

<?php
//查找淄博天气情况
//接口自带编写的数组
$showapi_appid = '46435'; //替换此值,在官网的"我的应用"中找到相关值
$showapi_secret = '7c55aef4ede442ffa49b24c2c808e523'; //替换此值,在官网的"我的应用"中找到相关值 
$paramArr = array(
   'showapi_appid'=> $showapi_appid,
   'areaid'=> "",
   'area'=> "淄博",
   'needMoreDay'=> "",
   'needIndex'=> "",
   'needHourData'=> "",
   'need3HourForcast'=> "",
   'needAlarm'=> ""
   //添加其他参数
);

//创建参数(包括签名的处理)接口自带编写的数组
function createParam ($paramArr,$showapi_secret) {
   $paraStr = "";
   $signStr = "";
   ksort($paramArr);
   foreach ($paramArr as $key => $val) {
     if ($key != '' && $val != '') {
       $signStr .= $key.$val;
       $paraStr .= $key.'='.urlencode($val).'&';
     }
   }
   $signStr .= $showapi_secret;//排好序的参数加上secret,进行md5
   $sign = strtolower(md5($signStr));
   $paraStr .= 'showapi_sign='.$sign;//将md5后的值作为参数,便于服务器的效验
  
   return $paraStr;
}

$param = createParam($paramArr,$showapi_secret);
$url = 'http://route.showapi.com/9-2?'.$param; 

//获取json格式的数据 
$result = file_get_contents($url);

 //对json格式的字符串进行编码
$arr = (json_decode($result));

$v = $arr->showapi_res_body;$attr = $v->f1;

//所需要的数据进行调用
$arr1 = $attr->day_weather;
$arr2 = $attr->night_weather;
$arr3 = $attr->night_air_temperature;
$arr4 = $attr->day_air_temperature;
$arr5 = $attr->day_wind_direction;
$arr6 = $attr->night_weather_pic;
echo $arr6;
?>
//将所需要的数据添加到数据库
<?php
require_once "./DBDA.class.php";
$db = new DBDA();

$sql = "insert into weather values('','{$arr1}','{$arr2}')";
$arr = $db->query($sql);  
?>

效果如图:

PHP调用API接口实现天气查询功能的示例

PHP调用API接口实现天气查询功能的示例

以上这篇PHP调用API接口实现天气查询功能的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
来自PHP.NET的入门教程
Oct 09 PHP
php 学习资料零碎东西
Dec 04 PHP
PHP备份/还原MySQL数据库的代码
Jan 06 PHP
php存储过程调用实例代码
Feb 03 PHP
DOM XPATH获取img src值的query
Sep 23 PHP
CI框架入门示例之数据库取数据完整实现方法
Nov 05 PHP
php如何获取文件的扩展名
Oct 28 PHP
PHP简单处理表单输入的特殊字符的方法
Feb 03 PHP
php对接java现实加签验签的实例
Nov 25 PHP
php使用include 和require引入文件的区别
Feb 16 PHP
ThinkPHP框架分布式数据库连接方法详解
Mar 14 PHP
php实现根据身份证获取精准年龄
Feb 26 PHP
PHP判断json格式是否正确的实现代码
Sep 20 #PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
Sep 20 #PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 #PHP
弹出模态框modal的实现方法及实例
Sep 19 #PHP
PHP 进度条函数的简单实例
Sep 19 #PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 #PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 #PHP
You might like
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
php调用自己java程序的方法详解
2016/05/13 PHP
django中的ajax组件教程详解
2018/10/18 PHP
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
2013/04/26 Javascript
jQuery实用技巧必备(下)
2015/11/03 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
Bootstrap导航简单实现代码
2017/03/06 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
Angular 2父子组件之间共享服务通信的实现
2017/07/04 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
Nuxt.js实战和配置详解
2019/08/05 Javascript
Vue开发环境中修改端口号的实现方法
2019/08/15 Javascript
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
浅谈python正则的常用方法 覆盖范围70%以上
2018/03/14 Python
python处理大日志文件
2019/07/23 Python
深入理解Tensorflow中的masking和padding
2020/02/24 Python
Python内建序列通用操作6种实现方法
2020/03/26 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
如何在mac版pycharm选择python版本
2020/07/21 Python
Java工程师面试集锦之Spring框架
2013/06/16 面试题
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
C#笔试题集合
2013/06/21 面试题
班组长工作职责
2013/12/25 职场文书
2014社区三八妇女节活动总结
2014/03/01 职场文书
学雷锋演讲稿
2014/03/04 职场文书
医院安全生产月活动总结
2014/07/05 职场文书
村班子对照检查材料
2014/08/18 职场文书
领导班子四风查摆对照检查材料思想汇报
2014/10/05 职场文书
2014年干部培训工作总结
2014/12/17 职场文书
小学三年级数学教学反思
2016/02/16 职场文书
thinkphp 获取控制器及控制器方法
2021/04/16 PHP
python基础之类方法和静态方法
2021/10/24 Python
OpenStack虚拟机快照和增量备份实现方法
2022/04/04 Servers