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 相关文章推荐
特详细的PHPMYADMIN简明安装教程
Aug 01 PHP
PHP设计模式 注册表模式
Feb 05 PHP
phpmyadmin3 安装配置图解教程
Mar 29 PHP
php中的strpos使用示例
Feb 27 PHP
php数据库备份还原类分享
Mar 20 PHP
PHP Session机制简介及用法
Aug 19 PHP
php数据访问之增删改查操作
May 09 PHP
浅谈PHP值mysql操作类
Jun 29 PHP
phpcms配置列表页以及获得文章发布时间
Jul 04 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
Sep 20 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 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
支持oicq头像的留言簿(一)
2006/10/09 PHP
Laravel实现定时任务的示例代码
2017/08/10 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
PHP的重载使用魔术方法代码实例详解
2021/02/26 PHP
javascript判断用户浏览器插件安装情况的代码
2011/01/01 Javascript
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
2017/02/13 Javascript
vue不通过路由直接获取url中参数的方法示例
2017/08/24 Javascript
node 利用进程通信实现Cluster共享内存
2017/10/27 Javascript
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
Vuex 单状态库与多模块状态库详解
2018/12/11 Javascript
elementUI多选框反选的实现代码
2019/04/03 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
跟老齐学Python之通过Python连接数据库
2014/10/28 Python
python多进程操作实例
2014/11/21 Python
python协程用法实例分析
2015/06/04 Python
Python中顺序表的实现简单代码分享
2018/01/09 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
2018/11/30 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
扩展Django admin的list_filter()可使用范围方法
2019/08/21 Python
Python3和PyCharm安装与环境配置【图文教程】
2020/02/14 Python
python实现在列表中查找某个元素的下标示例
2020/11/16 Python
意大利宠物用品购物网站:Bauzaar
2018/09/15 全球购物
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
博士研究生自我鉴定范文
2013/12/04 职场文书
护士求职自荐信范文
2014/03/19 职场文书
安全责任书范本
2014/04/15 职场文书
设计专业自荐信
2014/06/19 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
区域销售大会开幕词
2016/03/04 职场文书