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 相关文章推荐
第九节 绑定 [9]
Oct 09 PHP
在同一窗体中使用PHP来处理多个提交任务
Oct 09 PHP
PHP将XML转数组过程详解
Nov 13 PHP
百度站点地图(百度sitemap)生成方法分享
Jan 09 PHP
codeigniter数据库操作函数汇总
Jun 12 PHP
php字符串分割函数用法实例
Mar 17 PHP
PHP实现多文件上传的方法
Jul 08 PHP
php实现上传图片文件代码
Jul 19 PHP
php实现过滤字符串中的中文和数字实例
Jul 29 PHP
Zend Framework教程之MVC框架的Controller用法分析
Mar 07 PHP
分析php://output和php://stdout的区别
May 06 PHP
PHP开发API接口签名生成及验证操作示例
May 27 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
ninety plus是什么?ninety plus咖啡好吗?
2021/03/04 新手入门
PHP生成静态HTML文档实现代码
2016/06/23 PHP
iOS自定义提示弹出框实现类似UIAlertView的效果
2016/11/16 PHP
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
基于jQuery选择器的整理集合
2013/04/26 Javascript
php 中序列化和json使用介绍
2013/07/08 Javascript
jQuery简易图片放大特效示例代码
2014/06/09 Javascript
javascript实现根据时间段显示问候语的方法
2015/06/18 Javascript
JavaScript String 对象常用方法总结
2016/04/28 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
JSON字符串和JSON对象相互转化实例详解
2017/01/05 Javascript
用原生JS实现简单的多选框功能
2017/06/12 Javascript
JS中比Switch...Case更优雅的多条件判断写法
2019/09/05 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
[01:27]2014DOTA2展望TI 剑指西雅图IG战队专访
2014/06/30 DOTA
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
Python实现中一次读取多个值的方法
2018/04/22 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
整理HTML5中表单的常用属性及新属性
2016/02/19 HTML / CSS
阿里健康大药房:阿里自营网上药店
2017/08/01 全球购物
意大利珠宝店:Luxury Zone
2019/01/05 全球购物
库存图片、照片、矢量图、视频和音乐:Shutterstock
2021/02/12 全球购物
应届生骨科医生求职信
2013/10/31 职场文书
模具专业毕业生自荐书范文
2014/02/19 职场文书
培训班开班仪式主持词
2014/03/28 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
护士节活动总结
2014/08/29 职场文书
民主生活会汇报材料
2014/12/15 职场文书
2019年大学毕业生个人自我鉴定范文大全
2019/03/21 职场文书
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL
Redis RDB技术底层原理详解
2021/09/04 Redis
Python字典的基础操作
2021/11/01 Python
HTML5 新增内容和 API详解
2021/11/17 HTML / CSS
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫