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
定制404错误页面,并发信给管理员的程序
Oct 09 PHP
php实现mysql同步的实现方法
Oct 21 PHP
php 伪造本地文件包含漏洞的代码
Nov 03 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
Mar 25 PHP
PHP微信开发用Cache 解决数据缓存
Jul 11 PHP
微信支付开发告警通知实例
Jul 12 PHP
php基于数组函数实现关联表的编辑操作示例
Jul 04 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
May 09 PHP
php异常处理捕获错误整理
Sep 23 PHP
解决laravel5.4下的group by报错的问题
Oct 16 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
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
Zend Framework实现多文件上传功能实例
2016/03/21 PHP
php生成txt文件实例代码介绍
2016/04/28 PHP
PHP+Apache+Mysql环境搭建教程
2016/08/01 PHP
JavaScript类和继承 constructor属性
2010/03/04 Javascript
textarea 控制输入字符字节数(示例代码)
2013/12/27 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
详解JavaScript中的4种类型识别方法
2015/09/14 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
Node.js编写CLI的实例详解
2017/05/17 Javascript
JavaScript中正则表达式判断匹配规则及常用方法
2017/08/03 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
JavaScript 绘制饼图的示例
2021/02/19 Javascript
在Python中使用PIL模块处理图像的教程
2015/04/29 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
python爬虫之BeautifulSoup 使用select方法详解
2017/10/23 Python
django启动uwsgi报错的解决方法
2018/04/08 Python
解决pandas使用read_csv()读取文件遇到的问题
2018/06/15 Python
python使用Plotly绘图工具绘制柱状图
2019/04/01 Python
django-allauth入门学习和使用详解
2019/07/03 Python
在VS2017中用C#调用python脚本的实现
2019/07/31 Python
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
机械设计及其自动化专业推荐信
2013/10/31 职场文书
优秀共产党员先进事迹材料
2014/05/06 职场文书
中学教师师德师风演讲稿
2014/08/22 职场文书
反腐倡廉警示教育活动心得体会
2014/09/04 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书
推广普通话的宣传语
2015/07/13 职场文书
校运会加油稿大全
2015/07/22 职场文书
董事长致辞
2015/07/29 职场文书
Python中的套接字编程是什么?
2021/06/21 Python