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执行速度全攻略
Oct 09 PHP
snoopy PHP版的网络客户端提供本地下载
Apr 15 PHP
php过滤危险html代码
Aug 18 PHP
PHP详解ASCII码对照表与字符转换
Dec 05 PHP
smarty巧妙处理iframe中内容页的代码
Mar 07 PHP
php mail to 配置详解
Jan 16 PHP
将php数组输出html表格的方法
Feb 24 PHP
PHP实现多图片上传类实例
Jul 26 PHP
laravel migrate初学常见错误的解决方法
Oct 11 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
Jul 17 PHP
phpStorm2020 注册码
Sep 17 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
一个简单php扩展介绍与开发教程
2010/08/19 PHP
php一个解析字符串排列数组的方法
2015/05/12 PHP
javascript 对象的定义方法
2007/01/10 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
2011/04/19 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
鼠标滚轴控制文本框值的JS代码
2013/11/19 Javascript
js对象内部访问this修饰的成员函数示例
2014/04/27 Javascript
JavaScript极简入门教程(一):基础篇
2014/10/25 Javascript
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
浅谈mvvm-simple双向绑定简单实现
2018/04/18 Javascript
微信小程序实现星级评价效果
2018/12/28 Javascript
详解vue.js移动端配置flexible.js及注意事项
2019/04/10 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
[03:32]2014DOTA2西雅图邀请赛 CIS外卡赛赛前black专访
2014/07/09 DOTA
[05:31]DOTA2上海特级锦标赛主赛事第三日RECAP
2016/03/05 DOTA
python实现将汉字保存成文本的方法
2018/11/16 Python
Django管理员账号和密码忘记的完美解决方法
2018/12/06 Python
关于pytorch多GPU训练实例与性能对比分析
2019/08/19 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
2019/08/20 Python
Python networkx包的实现
2020/02/14 Python
java关于string最常出现的面试题整理
2021/01/18 Python
C,C++的几个面试题小集
2013/07/13 面试题
质量安全标语
2014/06/07 职场文书
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书
大三学年自我鉴定范文(3篇)
2014/09/28 职场文书
群众路线查摆问题整改措施思想汇报
2014/10/10 职场文书
语文教师求职信范文
2015/03/20 职场文书
律师函格式范本
2015/05/27 职场文书
邹越演讲观后感
2015/06/15 职场文书
用python批量解压带密码的压缩包
2021/05/31 Python