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函数篇详解十进制、二进制、八进制和十六进制转换函数说明
Dec 05 PHP
php在程序中将网页生成word文档并提供下载的代码
Oct 09 PHP
基于PHP选项与信息函数的使用详解
May 10 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
Jul 28 PHP
PHP中cookie和session的区别实例分析
Aug 28 PHP
如何正确配置Nginx + PHP
Jul 15 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
Oct 28 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
Mar 17 PHP
详解PHP变量传值赋值和引用赋值变量销毁
Mar 23 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
Sep 12 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
Oct 12 PHP
PHP实现简单的计算器
Aug 28 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
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
删除数组元素实用的PHP数组函数
2008/08/18 PHP
php中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
thinkPHP简单实现多个子查询语句的方法
2016/12/05 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
php中上传文件的的解决方案
2018/09/25 PHP
php用户名的密码加密更安全的方法
2019/06/21 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
ppk谈JavaScript style属性
2008/10/10 Javascript
web前端开发也需要日志
2010/12/09 Javascript
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
HTML5+setCutomValidity()函数验证表单实例分享
2015/04/24 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
浅谈vue-cli加载不到dev-server.js的解决办法
2017/11/24 Javascript
Javascript的this详解
2019/03/23 Javascript
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
微信小程序转化为uni-app项目的方法示例
2020/05/22 Javascript
python操作CouchDB的方法
2014/10/08 Python
pygame实现弹力球及其变速效果
2017/07/03 Python
PyCharm在win10的64位系统安装实例
2017/11/26 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
numpy排序与集合运算用法示例
2017/12/15 Python
PyQt5显示GIF图片的方法
2019/06/17 Python
Python画图实现同一结点多个柱状图的示例
2019/07/07 Python
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
毕业生优秀推荐信
2013/11/26 职场文书
优秀党务工作者事迹材料
2014/05/07 职场文书
爱心捐助倡议书
2014/05/19 职场文书
团结就是力量演讲稿
2014/05/21 职场文书
甲午大海战观后感
2015/06/02 职场文书
环保宣传语大全
2015/07/13 职场文书
校园安全教育心得体会
2016/01/15 职场文书
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle