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 各种应用乱码问题的解决方法
May 09 PHP
ThinkPHP之getField详解
Jun 20 PHP
php实现的常见排序算法汇总
Sep 08 PHP
php使用pdo连接并查询sql数据库的方法
Dec 24 PHP
php通过前序遍历树实现无需递归的无限极分类
Jul 10 PHP
使用PHP生成图片的缩略图的方法
Aug 18 PHP
最新制作ThinkPHP3.2.3完全开发手册
Nov 23 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
Dec 21 PHP
利用PHP生成CSV文件简单示例
Dec 21 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
Mar 14 PHP
Laravel基础_关于view共享数据的示例讲解
Oct 14 PHP
Laravel5.1 框架路由基础详解
Jan 04 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
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
2017/05/05 星际争霸
PHP实现删除字符串中任何字符的函数
2015/08/11 PHP
PHP实现微信小程序用户授权的工具类示例
2019/03/05 PHP
javascript 对象的定义方法
2007/01/10 Javascript
How to Auto Include a Javascript File
2007/02/02 Javascript
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
2009/08/04 Javascript
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
Vue波纹按钮组件制作
2018/04/30 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
element-ui 设置菜单栏展开的方法
2018/08/22 Javascript
three.js搭建室内场景教程
2018/12/30 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
微信小程序获取位置展示地图并标注信息的实例代码
2019/09/01 Javascript
js根据后缀判断文件文件类型的代码
2020/05/09 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
Python各类图像库的图片读写方式总结(推荐)
2018/02/23 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
python3获取文件中url内容并下载代码实例
2019/12/27 Python
Python如何将将模块分割成多个文件
2020/08/04 Python
Python random模块的使用示例
2020/10/10 Python
详解如何获取localStorage最大存储大小的方法
2020/05/21 HTML / CSS
西班牙创意礼品和小工具网上商店:Curiosite
2016/07/26 全球购物
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
产品促销活动策划书
2014/01/15 职场文书
工程力学专业自荐信范文
2014/03/17 职场文书
服务宗旨标语
2014/07/01 职场文书
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL