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 相关文章推荐
防止MySQL注入或HTML表单滥用的PHP程序
Jan 21 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
Feb 22 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
Aug 14 PHP
基于php 随机数的深入理解
Jun 05 PHP
table标签的结构与合并单元格的实现方法
Jul 24 PHP
迁移PHP版本到PHP7
Feb 06 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
Aug 23 PHP
thinkPHP统计排行与分页显示功能示例
Dec 02 PHP
Yii全局函数用法示例
Jan 22 PHP
PHP长网址与短网址的实现方法
Oct 13 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
Oct 17 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
Jan 17 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读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
php获取文件大小的方法
2014/02/26 PHP
php mysql操作mysql_connect连接数据库实例详解
2016/12/26 PHP
php实现36进制与10进制转换功能示例
2017/01/10 PHP
JScript中使用ADODB.Stream判断文件编码的代码
2008/06/09 Javascript
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
Jquery中扩展方法extend使用技巧
2014/08/24 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
2015/05/07 Javascript
JavaScript中setFullYear()方法的使用详解
2015/06/11 Javascript
js判断日期时间有效性的方法
2015/10/24 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
2016/12/15 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
2017/05/18 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
在vue中使用Echarts画曲线图的示例
2020/10/03 Javascript
python 提取文件的小程序
2009/07/29 Python
python实现多线程采集的2个代码例子
2014/07/07 Python
基于Python列表解析(列表推导式)
2018/06/23 Python
Python图像处理之颜色的定义与使用分析
2019/01/03 Python
详解Python循环作用域与闭包
2019/03/21 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
深入剖析webstorage[html5的本地数据处理]
2016/07/11 HTML / CSS
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
智能钱包:Ekster
2019/11/21 全球购物
C有"按引用传递"吗
2016/09/06 面试题
大学生毕业自我鉴定范文
2014/02/03 职场文书
元旦促销方案
2014/03/15 职场文书
党员目标管理责任书
2014/07/25 职场文书
环保志愿者活动方案
2014/08/14 职场文书
vue首次渲染全过程
2021/04/21 Vue.js