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编实现程动态图像的创建代码
Sep 28 PHP
php中存储用户ID和密码到mysql数据库的方法
Feb 06 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
Jun 24 PHP
php有效防止同一用户多次登录
Nov 19 PHP
PHP+ajax分页实例简析
Dec 07 PHP
功能强大的PHP发邮件类
Aug 29 PHP
php cookie 详解使用实例
Nov 03 PHP
PHP批量修改文件名称的方法分析
Feb 27 PHP
PHP 二级子目录(后台目录)设置二级域名
Mar 02 PHP
Yii2实现ActiveForm ajax提交
May 26 PHP
Laravel5.1框架注册中间件的三种场景详解
Jul 09 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 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将某个目录下面的所有文件罗列出来的方法详解
2013/06/21 PHP
WordPress中用于获取文章信息以及分类链接的函数用法
2015/12/18 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
根据出生日期自动取得星座的js代码
2010/07/20 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
javascript学习(二)javascript常见问题总结
2013/01/02 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
基于豆瓣API+Angular开发的web App
2015/01/02 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
Nodejs学习笔记之测试驱动
2015/04/16 NodeJs
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
AngularJS过滤器详解及示例代码
2016/08/16 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
2017/01/13 Javascript
Bootstrap页面缩小变形的快速解决办法
2017/02/03 Javascript
Bootstrap 网格系统布局详解
2017/03/19 Javascript
基于vue.js快速搭建图书管理平台
2017/10/29 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
JavaScript交换变量的常用方法小结【4种方法】
2020/05/07 Javascript
Python实现将罗马数字转换成普通阿拉伯数字的方法
2017/04/19 Python
python pcm音频添加头转成Wav格式文件的方法
2019/01/09 Python
Python元组常见操作示例
2019/02/19 Python
Django实现auth模块下的登录注册与注销功能
2019/10/10 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
回馈慈善的设计师太阳镜:DIFF eyewear
2019/10/17 全球购物
PHP经典面试题
2016/09/03 面试题
歌颂祖国演讲稿
2014/05/04 职场文书
自我推荐信范文
2014/05/09 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
一条 SQL 语句执行过程
2022/03/17 MySQL
Java十分钟精通进阶适配器模式
2022/04/06 Java/Android
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技