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 学习路线与时间表
Feb 21 PHP
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
May 10 PHP
PHP 一个随机字符串生成代码
May 26 PHP
PHP操作MongoDB GridFS 存储文件的详解
Jun 20 PHP
PHP自动生成后台导航网址的最佳方法
Aug 27 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
Nov 07 PHP
php给每个段落添加空格的方法
Mar 20 PHP
php mongodb操作类 带几个简单的例子
Aug 25 PHP
Yii框架实现邮箱激活的方法【数字签名】
Oct 18 PHP
php图形jpgraph操作实例分析
Feb 22 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
Dec 14 PHP
关于PHP数组迭代器的使用方法实例
Nov 17 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中OO之静态关键字以及类常量的详解
2013/06/07 PHP
php时区转换转换函数
2014/01/07 PHP
PHP中的session安全吗?
2016/01/22 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
FireFox JavaScript全局Event对象
2009/06/14 Javascript
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
jQuery中slideUp()方法用法分析
2014/12/24 Javascript
JS使用onerror捕获异常示例
2016/08/03 Javascript
onmouseover事件和onmouseout事件全面理解
2016/08/15 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
微信小程序实现基于三元运算验证手机号/姓名功能示例
2019/01/19 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
2021/01/13 Vue.js
Python基于time模块求程序运行时间的方法
2017/09/18 Python
python实现list由于numpy array的转换
2018/04/04 Python
python dataframe astype 字段类型转换方法
2018/04/11 Python
matplotlib subplots 调整子图间矩的实例
2018/05/25 Python
Python中的取模运算方法
2018/11/10 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
pybind11在Windows下的使用教程
2019/07/04 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
2020/12/01 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
贪睡宠物用品:Snoozer Pet Products
2020/02/04 全球购物
学生的自我鉴定范文
2013/10/24 职场文书
招商专员岗位职责
2014/02/08 职场文书
医院护士见习期自我鉴定
2014/04/10 职场文书
营销团队口号
2014/06/06 职场文书
食品安全标语
2014/06/07 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
2015年学校信息技术工作总结
2015/05/25 职场文书
英文诗歌翻译方法(赏析)
2019/08/16 职场文书
MySQL开启事务的方式
2021/06/26 MySQL