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下用GD生成生成缩略图的两个选择和区别
Apr 17 PHP
php 购物车实例(申精)
May 11 PHP
php curl常见错误:SSL错误、bool(false)
Dec 28 PHP
php线性表顺序存储实现代码(增删查改)
Feb 16 PHP
如何使用Strace调试工具
Jun 03 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
Jun 26 PHP
php修改文件上传限制方法汇总
Apr 07 PHP
php利用smtp类实现电子邮件发送
Oct 30 PHP
PHP中array_keys和array_unique函数源码的分析
Feb 26 PHP
关于PHP中字符串与多进制转换函数的实例代码
Nov 03 PHP
php中的explode()函数实例介绍
Jan 18 PHP
PHP获取ttf格式文件字体名的方法示例
Mar 06 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
预告映像公开!第1章续篇剧场版动画《Princess Principal Crown Handler》4月10日上映!
2020/03/06 日漫
1.PHP简介
2006/10/09 PHP
php学习笔记之 函数声明
2011/06/09 PHP
php array的学习笔记
2012/05/10 PHP
php中inlcude()性能对比详解
2012/09/16 PHP
php数据类型判断函数有哪些
2013/09/23 PHP
三种php连接access数据库方法
2013/11/11 PHP
十幅图告诉你什么是PHP引用
2015/02/22 PHP
php实现网页缓存的工具类分享
2015/07/14 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
解决Laravel5.2 Auth认证退出失效的问题
2019/10/14 PHP
基于jquery的给文章加入关键字链接
2010/10/26 Javascript
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
jquery 实现窗口的最大化不论什么情况
2013/09/03 Javascript
纯javascript实现图片延时加载方法
2015/08/21 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
js 事件的传播机制(实例讲解)
2017/07/20 Javascript
浅谈vue项目优化之页面的按需加载(vue+webpack)
2017/12/11 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
Python 常用string函数详解
2016/05/30 Python
Python操作MongoDB详解及实例
2017/05/18 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
决策树剪枝算法的python实现方法详解
2019/09/18 Python
python3中的eval和exec的区别与联系
2019/10/10 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
软件测试英文面试题
2012/10/14 面试题
村委会贫困证明范本
2014/09/17 职场文书
离职信范文
2015/06/23 职场文书
办公室日常管理制度
2015/08/04 职场文书
Android实现图片九宫格
2022/06/28 Java/Android