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 相关文章推荐
深入探讨<br />和 \r\n两者有什么区别??
Jun 05 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
Jun 26 PHP
怎样使用php与jquery设置和读取cookies
Aug 08 PHP
php ci框架中加载css和js文件失败的原因及解决方法
Jul 29 PHP
php使用递归函数实现数字累加的方法
Mar 16 PHP
php通过array_merge()函数合并关联和非关联数组的方法
Mar 18 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
Jul 18 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
Aug 25 PHP
laravel ORM 只开启created_at的几种方法总结
Jan 29 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
Jul 06 PHP
PHP使用非对称加密算法RSA
Apr 21 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下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
2014/07/02 PHP
php简单统计字符串单词数量的方法
2015/06/19 PHP
php结合ajax实现手机发红包的案例
2016/10/13 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
JS 字符串连接[性能比较]
2009/05/10 Javascript
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
一个JavaScript防止表单重复提交的实例
2014/10/21 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
js基于cookie记录来宾姓名的方法
2016/07/19 Javascript
js表单登陆验证示例
2016/10/19 Javascript
vue.js开发环境搭建教程
2017/05/04 Javascript
BootStrap数据表格实例代码
2017/09/13 Javascript
React中上传图片到七牛的示例代码
2017/10/10 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
Vue数据绑定简析小结
2019/05/07 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
2020/02/23 Javascript
vue组件中实现嵌套子组件案例
2020/08/31 Javascript
[26:52]LGD vs EG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python检测远程udp端口是否打开的方法
2015/03/14 Python
学习Django知识点分享
2019/09/11 Python
python实现可下载音乐的音乐播放器
2020/02/25 Python
一款纯css3实现的鼠标悬停动画按钮
2014/12/29 HTML / CSS
以实惠的价格轻松租车,免费取消:Easyrentcars
2019/07/16 全球购物
管理科学大学生求职信
2013/11/13 职场文书
初中地理教学反思
2014/01/11 职场文书
运动会稿件200字
2014/02/07 职场文书
运动员获奖感言
2014/08/15 职场文书
北京英文导游词
2015/02/12 职场文书
工作简报怎么写
2015/07/21 职场文书