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 相关文章推荐
一个取得文件扩展名的函数
Oct 09 PHP
php自动加载机制的深入分析
Jun 08 PHP
PHP mail()函数使用及配置方法
Jan 14 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
Jan 30 PHP
PHP常用处理静态操作类
Apr 03 PHP
PHP中把对象转换为关联数组代码分享
Apr 09 PHP
PHP函数func_num_args用法实例分析
Dec 07 PHP
php防止CC攻击代码 php防止网页频繁刷新
Dec 21 PHP
PHP编程 SSO详细介绍及简单实例
Jan 13 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
Mar 11 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
Oct 15 PHP
浅谈laravel框架sql中groupBy之后排序的问题
Oct 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 url地址栏传中文乱码解决方法集合
2010/06/25 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
Javascript调用C#代码
2011/01/17 Javascript
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
2012/10/11 Javascript
jQuery中position()方法用法实例
2015/01/16 Javascript
javascript中this的四种用法
2015/05/11 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
JavaScript中的Math.LN2属性用法详解
2015/06/12 Javascript
js数组如何添加json数据及js数组与json的区别
2015/10/27 Javascript
jquery实现图片放大镜功能
2015/11/23 Javascript
概述jQuery的元素筛选
2016/11/23 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
vue搜索和vue模糊搜索代码实例
2019/05/07 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
[47:55]Ti4第二日主赛事败者组 NaVi vs EG 1
2014/07/20 DOTA
[01:57]2016完美“圣”典风云人物:国士无双专访
2016/12/04 DOTA
Python中List.count()方法的使用教程
2015/05/20 Python
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
pytorch cnn 识别手写的字实现自建图片数据
2018/05/20 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
jupyter notebook 重装教程
2020/04/16 Python
python使用matplotlib绘制折线图的示例代码
2020/09/22 Python
iRobot官网:改变生活的家用机器人品牌
2016/09/20 全球购物
业务员岗位职责
2013/11/16 职场文书
大学四年规划书范文
2013/12/27 职场文书
省优秀教师事迹材料
2014/01/30 职场文书
公司端午节活动方案
2014/02/04 职场文书
房地产促销活动方案
2014/03/01 职场文书
酒店人事主管岗位职责
2015/04/11 职场文书
Python实战之实现康威生命游戏
2021/04/26 Python
Python深度学习之Pytorch初步使用
2021/05/20 Python