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数组内存耗用太多问题的解决方法
Apr 05 PHP
php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
Oct 22 PHP
10条PHP高级技巧[修正版]
Aug 02 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
Jun 26 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
Aug 13 PHP
php检测文件编码的方法示例
Apr 25 PHP
PHP获取一年中每个星期的开始和结束日期的方法
Feb 12 PHP
Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
Mar 29 PHP
php使用正则表达式获取字符串中的URL
Dec 29 PHP
thinkPHP5.0框架独立配置与动态配置方法
Mar 17 PHP
php实现的redis缓存类定义与使用方法示例
Aug 09 PHP
php实现微信发红包功能
Jul 13 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中extract()函数的定义和用法
2012/08/17 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
2016/01/07 PHP
php和nginx交互实例讲解
2019/09/24 PHP
JavaScript 事件属性绑定带参数的函数
2009/03/13 Javascript
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
JavaScript实现控制打开文件另存为对话框的方法
2015/04/17 Javascript
省市选择的简单实现(基于zepto.js)
2016/06/21 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
深入理解ES6学习笔记之块级作用域绑定
2017/08/19 Javascript
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
vue项目中全局引入1个.scss文件的问题解决
2019/08/01 Javascript
js实现简单的秒表
2020/01/16 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
[17:00]DOTA2 HEROS教学视频教你分分钟做大人-帕克
2014/06/10 DOTA
[56:17]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
Python代码缩进和测试模块示例详解
2018/05/07 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
Python global全局变量函数详解
2018/09/18 Python
Python控制Firefox方法总结
2019/06/03 Python
python调用webservice接口的实现
2019/07/12 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
python双向链表原理与实现方法详解
2019/12/03 Python
python super函数使用方法详解
2020/02/14 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
Ratchet 模态框的实现
2020/08/19 HTML / CSS
SCHIESSER荷兰官方网站:德国内衣专家
2020/10/09 全球购物
结构工程个人自荐信范文
2013/11/30 职场文书
户外活动总结范文
2014/04/30 职场文书
年终奖发放方案
2014/06/02 职场文书
2013年最新自荐信范文
2014/06/23 职场文书
党建工作整改措施
2014/10/28 职场文书
Html5通过数据流方式播放视频的实现
2021/04/27 HTML / CSS
我的收音机情缘
2022/04/05 无线电