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的历史和优缺点
Oct 09 PHP
让PHP支持页面回退的两种方法[转]
Feb 14 PHP
php设计模式 Visitor 访问者模式
Jun 28 PHP
php通过COM类调用组件的实现代码
Jan 11 PHP
PHP获取文件后缀名的三个函数
Oct 15 PHP
简单实用的网站PHP缓存类实例
Jul 18 PHP
php使用parse_url和parse_str解析URL
Feb 22 PHP
php删除指定目录的方法
Apr 03 PHP
PHP提高编程效率的20个要点
Sep 23 PHP
PHP开发中常用的十个代码样例
Feb 02 PHP
详解PHP中curl_multi并发的实现
Jun 08 PHP
PHP解决高并发的优化方案实例
Dec 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 fgetcsv 定义和用法(附windows与linux下兼容问题)
2012/05/29 PHP
php基础教程
2015/08/26 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
2018/06/20 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
JavaScript中“+=”的应用
2007/02/02 Javascript
jQuery 页面载入进度条实现代码
2009/02/08 Javascript
JScript中的条件注释详解
2015/04/24 Javascript
使用impress.js制作幻灯片
2015/09/09 Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
2015/11/09 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
JS作用域链详解
2017/06/26 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
2017/10/31 Javascript
Node实战之不同环境下配置文件使用教程
2018/01/02 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
ES6入门教程之Array.from()方法
2019/03/23 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
2019/05/16 Javascript
WebSocket的简单介绍及应用
2019/05/23 Javascript
详解Vue项目引入CreateJS的方法(亲测可用)
2019/05/30 Javascript
python统计字符串中指定字符出现次数的方法
2015/04/04 Python
深入解析Python中的线程同步方法
2016/06/14 Python
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
Python语言快速上手学习方法
2018/12/14 Python
python3.6使用urllib完成下载的实例
2018/12/19 Python
Python调用百度根据经纬度查询地址的示例代码
2019/07/07 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
pytorch forward两个参数实例
2020/01/17 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
浅谈Python协程
2020/06/17 Python
内蒙古鄂尔多斯市市长寄语
2014/04/10 职场文书
法制宣传月活动方案
2014/05/11 职场文书
2015年全民国防教育日活动总结
2015/03/23 职场文书
法律进社区活动总结
2015/05/07 职场文书
小学少先队活动总结
2015/05/08 职场文书
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python