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 ajax 静态分页过程形式
Sep 02 PHP
PHP面向对象——访问修饰符介绍
Nov 08 PHP
php代码书写习惯优化小结
Jun 20 PHP
PHP 获取远程文件大小的3种解决方法
Jul 11 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
Sep 28 PHP
使用php测试硬盘写入速度示例
Jan 27 PHP
PHP标准类(stdclass)用法示例
Sep 28 PHP
PHP 500报错的快速解决方法
Dec 14 PHP
浅析PHP数据导出知识点
Feb 17 PHP
PHP生成推广海报的方法分享
Apr 22 PHP
php判断电子邮件是否正确方法
Dec 04 PHP
使用php的mail()函数实现发送邮件功能
Jun 03 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
Syphon 虹吸式咖啡壶冲煮–拨动法
2021/03/03 冲泡冲煮
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
2015/06/17 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
基于Swoole实现PHP与websocket聊天室
2016/08/03 PHP
JavaScript使用cookie
2007/02/02 Javascript
自己的js工具 Event封装
2009/08/21 Javascript
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
JavaScript中发布/订阅模式的简单实例
2014/11/05 Javascript
JavaScript常用小技巧小结
2014/12/29 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
Angular中sweetalert弹框的基本使用教程
2018/07/22 Javascript
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
Javascript中的this,bind和that使用实例
2019/12/05 Javascript
[01:11]回顾历届DOTA2国际邀请赛中国区预选赛
2017/06/26 DOTA
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
Python生成器定义与简单用法实例分析
2018/04/30 Python
在脚本中单独使用django的ORM模型详解
2020/04/01 Python
python性能测试工具locust的使用
2020/12/28 Python
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
应届毕业生求职自荐书
2014/01/03 职场文书
写给爸爸的道歉信
2014/01/15 职场文书
餐厅总厨求职信
2014/03/04 职场文书
激励口号大全
2014/06/17 职场文书
信用卡工资证明范本
2014/10/17 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书
thinkphp 获取控制器及控制器方法
2021/04/16 PHP
总结Python使用过程中的bug
2021/06/18 Python
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记
python双向链表实例详解
2022/05/25 Python