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 相关文章推荐
escape unescape的php下的实现方法
Apr 27 PHP
一些被忽视的PHP函数(简单整理)
Apr 30 PHP
php 学习资料零碎东西
Dec 04 PHP
php 定义404页面的实现代码
Nov 19 PHP
php中删除、清空session的方式总结
Oct 09 PHP
功能强大的PHP发邮件类
Aug 29 PHP
Redis使用Eval多个键值自增的操作实例
Nov 04 PHP
thinkPHP中session()方法用法详解
Dec 08 PHP
PHP下载远程图片的几种方法总结
Apr 07 PHP
PHP命令空间namespace及use的用法小结
Nov 27 PHP
PHP7基于curl实现的上传图片功能
May 11 PHP
php微信开发之谷歌测距
Jun 14 PHP
PHP判断json格式是否正确的实现代码
Sep 20 #PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
Sep 20 #PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 #PHP
PHP使用Nginx实现反向代理
Sep 20 #PHP
弹出模态框modal的实现方法及实例
Sep 19 #PHP
PHP 进度条函数的简单实例
Sep 19 #PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 #PHP
You might like
php自动加载autoload机制示例分享
2014/02/20 PHP
php实现数组按指定KEY排序的方法
2015/03/30 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
使用非html5实现js板连连看游戏示例代码
2013/09/22 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
jquery.cookie.js使用指南
2015/01/05 Javascript
nodejs事件的监听与触发的理解分析
2015/02/12 NodeJs
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
封装属于自己的JS组件
2016/01/27 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
2016/02/18 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
不使用 JS 匿名函数理由
2017/11/17 Javascript
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python中字典和集合学习小结
2017/07/07 Python
python的schedule定时任务模块二次封装方法
2019/02/19 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
python实现简单井字棋小游戏
2020/03/05 Python
python selenium操作cookie的实现
2020/03/18 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
方法名是否可以与构造器的名字相同
2012/06/04 面试题
什么是索引指示器
2012/08/20 面试题
财务出纳岗位职责
2014/02/03 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
2014党员干部四风问题对照检查材料思想汇报
2014/09/24 职场文书
小区门卫的岗位职责
2014/09/26 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
评职称个人总结
2015/03/05 职场文书
小学国庆节活动总结
2015/03/23 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS