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仿discuz分页效果代码
Oct 02 PHP
php 随机生成10位字符代码
Mar 26 PHP
PHP 批量删除数据的方法分析
Oct 30 PHP
PHP转换IP地址到真实地址的方法详解
Jun 09 PHP
phpmyadmin config.inc.php配置示例
Aug 27 PHP
php求正负数数组中连续元素最大值示例
Apr 11 PHP
PHP命名空间(namespace)的使用基础及示例
Aug 18 PHP
通过php添加xml文档内容的方法
Jan 23 PHP
PHP Hash算法:Times33算法代码实例
May 13 PHP
PHP生成json和xml类型接口数据格式
May 17 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
Jul 29 PHP
浅谈php中变量的数据类型判断函数
Mar 04 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命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
2015/05/25 PHP
Yii中CGridView禁止列排序的设置方法
2016/07/12 PHP
基于PHP实现用户注册登录功能
2016/10/14 PHP
php实现微信原生支付(扫码支付)功能
2018/05/30 PHP
使用laravel根据用户类型来显示或隐藏字段
2019/10/17 PHP
JavaScript中Object和Function的关系小结
2009/09/26 Javascript
JavaScript Timer实现代码
2010/02/17 Javascript
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
2012/08/14 Javascript
Javascript 实现的数独解题算法网页实例
2013/10/15 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
JavaScript验证电子邮箱的函数
2014/08/22 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
2015/12/04 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
JavaScript提高加载和执行效率的方法
2017/02/03 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
手把手教你写一个微信小程序(推荐)
2018/10/17 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
vue框架中props的typescript用法详解
2020/02/17 Javascript
Python 调用Java实例详解
2017/06/02 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
django项目搭建与Session使用详解
2018/10/10 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
2019/02/21 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
2019/08/08 Python
计算机专业推荐信范文
2013/11/27 职场文书
运动会广播稿80字
2014/01/23 职场文书
2014厂务公开实施方案
2014/02/17 职场文书
五年级学生评语
2014/04/22 职场文书
微电影大赛策划方案
2014/06/05 职场文书
部门2014年度工作总结
2014/11/12 职场文书
2014年医生工作总结
2014/11/21 职场文书
大学生求职信怎么写
2015/03/19 职场文书
文明和谐家庭事迹材料(2016精选版)
2016/02/29 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
MySQL 覆盖索引的优点
2021/05/19 MySQL