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 UTF8编码内的繁简转换类
Jul 20 PHP
php 获得汉字拼音首字母的函数
Aug 01 PHP
php实现的仿阿里巴巴实现同类产品翻页
Dec 11 PHP
PHP 开发环境配置(测试开发环境)
Apr 28 PHP
php中static静态变量的使用方法详解
Jun 04 PHP
php中Session的生成机制、回收机制和存储机制探究
Aug 19 PHP
9条PHP编程小知识及易犯的小错误
Jan 22 PHP
php 在字符串指定位置插入新字符的简单实现
Jun 28 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
Jul 14 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
Nov 25 PHP
浅谈PHP封装CURL
Mar 06 PHP
通过PHP实现用户注册后邮箱验证激活
Nov 10 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代码
2013/11/19 PHP
PH P5.2至5.5、5.6的新增功能详解
2014/07/14 PHP
关于图片验证码设计的思考
2007/01/29 Javascript
JSON 学习之完全手册 图文
2007/05/29 Javascript
读jQuery之十四 (触发事件核心方法)
2011/08/23 Javascript
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
jQuery通过扩展实现抖动效果的方法
2015/03/11 Javascript
Angular学习笔记之angular的$filter服务浅析
2016/11/12 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
浅谈手写node可读流之流动模式
2018/06/01 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
js实现消灭星星(web简易版)
2020/03/24 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
2020/04/01 jQuery
Node.js设置定时任务之node-schedule模块的使用详解
2020/04/28 Javascript
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
详解Python中的多线程编程
2015/04/09 Python
Python实现方便使用的级联进度信息实例
2015/05/05 Python
Python tkinter事件高级用法实例
2018/01/31 Python
解决pycharm回车之后不能换行或不能缩进的问题
2019/01/16 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
Pycharm+Python+PyQt5使用详解
2019/09/25 Python
Python unittest工作原理和使用过程解析
2020/02/24 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
scrapy头部修改的方法详解
2020/12/06 Python
HTML5 本地存储之如果没有数据库究竟会怎样
2013/04/25 HTML / CSS
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
世界最大的海报和艺术印刷商店:AllPosters.com
2017/02/01 全球购物
英国领先的豪华时尚家居网上商店:Amara
2019/08/12 全球购物
顺丰快递Java软件工程师面试题
2015/07/31 面试题
销售人员自我评价
2014/02/01 职场文书
课题研究阶段性总结
2015/08/13 职场文书
远程教育学习心得体会
2016/01/23 职场文书
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android