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 相关文章推荐
PHP5 安装方法
Oct 09 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
Apr 10 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
Jun 19 PHP
高性能PHP框架Symfony2经典入门教程
Jul 08 PHP
PHP防止注入攻击实例分析
Nov 03 PHP
PHP中iconv函数转码时截断字符问题的解决方法
Jan 21 PHP
php ImageMagick windows下安装教程
Jan 26 PHP
Laravel 5框架学习之Laravel入门和新建项目
Apr 07 PHP
PHP实现简单ajax Loading加载功能示例
Dec 28 PHP
PHP递归算法的简单实例
Feb 28 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
Feb 10 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
模仿OSO的论坛(二)
2006/10/09 PHP
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
2016/10/13 PHP
用JS写的一个TableView控件代码
2010/01/23 Javascript
jQuery中:radio选择器用法实例
2015/01/03 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
浅谈javascript的分号的使用
2015/05/12 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
让图片跳跃起来  javascript图片轮播特效
2016/02/16 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
写给vue新手们的vue渲染页面教程
2017/09/01 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
2019/11/05 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
VUE Elemen-ui之穿梭框使用方法详解
2021/01/19 Javascript
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
Python实现统计给定列表中指定数字出现次数的方法
2018/04/11 Python
python利用smtplib实现QQ邮箱发送邮件
2020/05/20 Python
使用python 打开文件并做匹配处理的实例
2019/01/02 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
python TK库简单应用(实时显示子进程输出)
2019/10/29 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
python实现简单井字棋小游戏
2020/03/05 Python
Python预测2020高考分数和录取情况
2020/07/08 Python
python 如何设置守护进程
2020/10/29 Python
Python 多进程、多线程效率对比
2020/11/19 Python
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
电脑销售顾问自荐信
2014/01/29 职场文书
小学课外阅读总结
2014/07/09 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
政府四风问题整改措施
2014/10/04 职场文书
tomcat下部署jenkins的方法
2022/05/06 Servers
springboot集成redis存对象乱码的问题及解决
2022/06/16 Java/Android