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.MVC的模板标签系统(四)
Sep 05 PHP
PHP模板引擎SMARTY
Oct 09 PHP
php 动态添加记录
Mar 10 PHP
php 图片上传类代码
Jul 17 PHP
php数组一对一替换实现代码
Aug 31 PHP
php获取数组元素中头一个数组元素值的实现方法
Dec 20 PHP
WIN8.1下搭建PHP5.6环境
Apr 29 PHP
php创建桌面快捷方式实现方法
Dec 31 PHP
PHP使用PDO操作数据库的乱码问题解决方法
Apr 08 PHP
PHP引用的调用方法分析
Apr 25 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
Oct 31 PHP
php设计模式之职责链模式定义与用法经典示例
Sep 19 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工程师VIM配置分享
2015/12/15 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
页面中body onload 和 window.onload 冲突的问题的解决
2009/07/01 Javascript
Mootools 1.2 手风琴(Accordion)教程
2009/09/15 Javascript
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
jQuery中scrollLeft()方法用法实例
2015/01/16 Javascript
jQuery在ul中显示某个li索引号的方法
2015/03/17 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
学习使用bootstrap基本控件(table、form、button)
2016/04/12 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
JS实现简单获取最近7天和最近3天日期的方法
2018/04/18 Javascript
浅谈react性能优化的方法
2018/09/05 Javascript
vue-cli项目中使用echarts图表实例
2018/10/22 Javascript
js实现多个标题吸顶效果
2020/01/08 Javascript
JS实现分页导航效果
2020/02/19 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
[06:21]2014DOTA2国际邀请赛 庆祝VG首阶段领跑;B叔为挣牛排半夜整理情报
2014/07/13 DOTA
python 将字符串转换成字典dict
2013/03/24 Python
零基础写python爬虫之爬虫编写全记录
2014/11/06 Python
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
python之MSE、MAE、RMSE的使用
2020/02/24 Python
html5手机键盘弹出收起的处理
2020/01/20 HTML / CSS
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
网络工程专业毕业生推荐信
2013/10/28 职场文书
DIY蛋糕店的创业计划书范文
2013/12/26 职场文书
大学社团计划书
2014/05/01 职场文书
团队激励口号
2014/06/06 职场文书
Win10系统下配置Java环境变量
2021/06/13 Java/Android
html form表单基础入门案例讲解
2021/07/21 HTML / CSS
Go语言怎么使用变长参数函数
2022/07/15 Golang