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脚本中include文件出错解决方法
Nov 20 PHP
php模板中出现空行解决方法
Mar 08 PHP
PHP防止post重复提交数据的简单例子
Jun 07 PHP
ThinkPHP3.1新特性之字段合法性检测详解
Jun 19 PHP
destoon实现底部添加你是第几位访问者的方法
Jul 15 PHP
PHP获取一个字符串中间一部分字符的方法
Aug 19 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
May 26 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
Mar 02 PHP
PHP实现的简单sha1加密功能示例
Aug 27 PHP
PHP addcslashes()函数讲解
Feb 03 PHP
PHP实现文字写入图片功能
Feb 18 PHP
在Laravel中实现使用AJAX动态刷新部分页面
Oct 15 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
星际原理概述
2020/03/04 星际争霸
PHP输出一个等腰三角形的方法
2015/05/12 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
PHP实现对图片的反色处理功能【测试可用】
2018/02/01 PHP
PHP创建XML接口示例
2019/07/04 PHP
laravel 解决路由除了根目录其他都404的问题
2019/10/18 PHP
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
2009/07/14 Javascript
ExtJs中gridpanel分组后组名排序实例代码
2013/12/02 Javascript
关于JavaScript命名空间的一些心得
2014/06/07 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
基于JS实现限时抢购倒计时间表代码
2017/05/09 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
redux-saga 初识和使用
2018/03/10 Javascript
angular多语言配置详解
2019/05/16 Javascript
[57:16]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第二场
2014/05/26 DOTA
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
Python使用面向对象方式创建线程实现12306售票系统
2015/12/24 Python
python中logging库的使用总结
2017/10/18 Python
微信跳一跳python辅助脚本(总结)
2018/01/11 Python
用Python实现读写锁的示例代码
2018/11/05 Python
python3.6数独问题的解决
2019/01/21 Python
PyQt5实现简易电子词典
2019/06/25 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
HTML5样式控制示例代码
2013/11/27 HTML / CSS
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
婴儿鞋,独特的婴儿服装和配件:Zutano
2018/11/03 全球购物
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
财产公证书格式
2014/04/10 职场文书
标准的毕业生自荐信
2014/04/20 职场文书
校园演讲稿汇总
2014/05/21 职场文书
军训拉歌口号
2014/06/13 职场文书
优秀中职教师事迹材料
2014/08/26 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
优质护理服务心得体会
2016/01/22 职场文书