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 相关文章推荐
phpMyAdmin链接MySql错误 个人解决方案
Dec 28 PHP
Mysql数据库操作类( 1127版,提供源码下载 )
Dec 02 PHP
PHP查询MySQL大量数据的时候内存占用分析
Jul 22 PHP
php explode函数实例代码
Feb 27 PHP
php面向对象 字段的声明与使用
Jun 14 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
Apr 24 PHP
php简单统计字符串单词数量的方法
Jun 19 PHP
基于PHP如何把汉字转化为拼音
Dec 11 PHP
php多线程并发实现方法
Sep 30 PHP
phpcms中的评论样式修改方法
Oct 21 PHP
Laravel 的数据库迁移的方法
Jul 31 PHP
浅谈关于PHP解决图片无损压缩的问题
Sep 01 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根据年月获取季度的方法
2014/03/31 PHP
php快递单号查询接口使用示例
2014/05/05 PHP
PHP创建/删除/复制文件夹、文件
2016/05/03 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
2016/08/23 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
20款效果非常棒的 jQuery 插件小结分享
2011/11/18 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
AngularJS 面试题集锦
2016/09/06 Javascript
jQuery日程管理控件glDatePicker用法详解
2017/03/29 jQuery
详解用vue编写弹出框组件
2017/07/04 Javascript
教你5分钟学会用requirejs(必看篇)
2017/07/25 Javascript
Vue中this.$nextTick的作用及用法
2020/02/04 Javascript
js实现简单进度条效果
2020/03/25 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
Python实现简单的可逆加密程序实例
2015/03/05 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
Python变量类型知识点总结
2019/02/18 Python
python对Excel按条件进行内容补充(推荐)
2019/11/24 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
党员思想汇报范文
2013/12/30 职场文书
土木建筑学生自我评价
2014/01/14 职场文书
基层干部十八大感言
2014/01/19 职场文书
年度考核自我鉴定
2014/02/02 职场文书
竞聘上岗演讲稿
2014/05/16 职场文书
优秀毕业生就业推荐信
2014/05/22 职场文书
市场营销工作计划书
2014/09/15 职场文书
2014三年级班主任工作总结
2014/12/05 职场文书
同意转租证明
2015/06/24 职场文书
安全学习心得体会范文
2016/01/18 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python
浅谈redis整数集为什么不能降级
2021/07/25 Redis