分享一个php版本的查询天气接口。免费查询天气的接口有很多,比如百度的apistore的天气api接口,我本来想采用这个接口的,可惜今天百度apistore死活打不开了。那就用聚合数据的天气api接口吧,也是免费的,不过聚合数据的接口申请相对繁琐。

1、注册一个聚合数据的账号

2、实名认证你的账号

3、申请你需要的api接口

4、申请验证你的api接口

申请地址:https://www.juhe.cn/docs/api/...

虽然是繁琐了很多,不过返回的信息确是非常的丰富。

好了,现在来分享一下,tp5中怎么整合进去。

config.php中,配置你的appkey:

//配置文件

return [

'appkey' => '' //此处填入你的key

];

common.php中放入请求的方法:

/**

* 请求接口返回内容

* @param string $url [请求的URL地址]

* @param string $params [请求的参数]

* @param int $ipost [是否采用POST形式]

* @return string

*/

function juhecurl($url, $params=false, $ispost=0){

$httpInfo = [];

$ch = curl_init();

curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );

curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' );

curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );

curl_setopt( $ch, CURLOPT_TIMEOUT , 60);

curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

if( $ispost )

{

curl_setopt( $ch , CURLOPT_POST , true );

curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );

curl_setopt( $ch , CURLOPT_URL , $url );

}

else

{

if($params){

curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );

}else{

curl_setopt( $ch , CURLOPT_URL , $url);

}

}

$response = curl_exec( $ch );

if ($response === FALSE) {

//echo "cURL Error: " . curl_error($ch);

return false;

}

$httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );

$httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );

curl_close( $ch );

return $response;

}

控制器中,index.php的代码:

// +----------------------------------------------------------------------

// | 利用聚合数据查询天气

// +----------------------------------------------------------------------

// | Copyright (c) 2016~2022 http://baiyf.cn All rights reserved.

// +----------------------------------------------------------------------

// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )

// +----------------------------------------------------------------------

// | Author: NickBai <1902822973@qq.com>

// +----------------------------------------------------------------------

namespace app\weather\controller;

use think\Controller;

class Index extends Controller

{

public function index()

{

return $this->fetch();

}

/**

* 根据城市获取天气情况

*/

public function getWeatherByCity()

{

$cityName = input('param.cityname');

$url = "http://op.juhe.cn/onebox/weather/query";

$appkey = config('appkey');

$params = [

"cityname" => $cityName,//要查询的城市,如:温州、上海、北京

"key" => $appkey,//应用APPKEY(应用详细页查询)

"dtype" => "",//返回数据的格式,xml或json,默认json

];

$paramstring = http_build_query($params);

$content = juhecurl($url, $paramstring);

$result = json_decode($content, true);

if( empty( $result ) ){

return json( ['code' => -1, 'data' => '', 'msg' => '请求失败'] );

}

if( '0' != $result['error_code'] ){

return json( ['code' => -2, 'data' => '', 'msg' => $result['error_code']." : ".$result['reason']] );

}

return json( ['code' => 1, 'data' => $result, 'msg' => 'success'] );

}

}

view层中,index.html的代码如下:

天气查询

查询

$(function(){

$("#searchBtn").click(function(){

var city = $("#searchbox").val();

if( '' == city ){

layer.alert('城市名称不能为空', { 'icon' : 2 });

return ;

}

var index = layer.load(0, {shade: false}); //0代表加载的风格,支持0-2

$.getJSON( "{:url('weather/index/getWeatherByCity')}", { 'cityname' : city }, function(res){

layer.close( index );

if( 1 == res.code ){

}else{

layer.alert( res.msg , { 'icon' : 2 });

}

});

})

});

通过浏览器访问页面如下:

输入你要查询的城市,比如:南京,点击查询

json数据成功返回,这是你就可以根据你的需要渲染页面了。参数的讲解参照这里

https://www.juhe.cn/docs/api/...

php tp 聚合数据接口,TP5结合聚合数据天气预报API查询天气相关推荐

  1. 股票level2数据接口获取逐笔成交数据的过程

    描述:通过股票level2数据接口获取逐笔成交数据的过程 地点:https://gitee.com/l2gogogo 获取过程: /// <summary> /// 获取逐笔成交数据 // ...

  2. 循序渐进BootstrapVue,开发公司门户网站(5)--- 使用实际数据接口代替本地Mock数据

    在我们开发一些门户网站功能的时候,有时候我们需要快速的创建数据模型来进行数据展示,因为数据结构可能处于不断的修正变化之中,因此服务端的接口我们可以暂时不开发,当我们基本完成数据结构和界面展示的时候,就 ...

  3. python财经数据接口包_Tushare 财经数据接口包介绍(Python)

    最近在研究Python的量化交易实现,因为需要股票相关的金融数据,自己动手爬,实在太麻烦了. 于是在网上找找有没现成的数据接口,好做数据分析,发现了这个好东西,分享一下. Tushare 介绍: Tu ...

  4. 金融数据接口tushare爬取数据

    import matplotlib.pyplot as pltimport seaborn as snsimport tushare as tsfrom datetime import datetim ...

  5. A股level2行情数据接口可以获取可转债数据吗?

    可以的,究竟如何通过level2行情获取可转债数据? level2行情数据接口数据包括每只股票每3秒的快照数据,每10秒的快照数据毫秒级差别推送数据,收集多个逐笔成交数据和逐笔委托数据. 通过数据提供 ...

  6. 纳米数据世界杯数据接口,中超数据,体育数据比分,世界杯赛程api,足球比赛实时数据接口

    体育科技是体育产业发展的强力助推器,而在诸多体育新科技中,大数据和人工智能无疑担当着重要的角色之一.互联网时代,数据是最珍贵的资源,大数据正引领传统行业并与之结合,催生出新的活力.几乎各行各业都在拥抱 ...

  7. Android访问中央气象台的天气预报API得到天气数据

    在用Android获取天气预报数据时,大家一定会首先想到Google的天气预报API,其实除了Google的天气预报API,免费的天气预报接口还有http://www.webservicex.net/ ...

  8. A股level2数据接口十档行情数据代码说明

    //股票十档行情 //接口数据说明 message StockQuoteRecord{ uint32 stock_exchange = 1;//证券市场,见数据字典 string stock_code ...

  9. wordpress 外部数据接口_在WordPress中开发API接口

    相信很多朋友都有在wordpress中开发API接口的需求 其实wordpress中进行API开发也不是有多大的难度.不过我走了很多弯路,所以在这里写下方法,以免更多人再走这条弯路. 在刚接到开发wo ...

最新文章

  1. 108.什么是信道?109.信道分类 110.什么是模拟信号?什么是数字信号?
  2. “中国黄酒文化之乡”举办黄酒蒸笼文化旅游节
  3. 【289】◀▶ Python I/O 读写文本文件
  4. 强制修改上网本分辨率
  5. SpringCloud Zuul(三)之常见用法
  6. python接口自动化(三十一)--html测试报告通过邮件发出去——下(详解)
  7. 关于vue的npm run dev和npm run build
  8. bbs.php168,PHP168 下载安装教程
  9. 如何c51和mdk共存兼容_如何使用无线技术控制大功率快速充电
  10. java pdf替换文字_java 查找替换pdf中的指定文本
  11. C语言递归函数 计算学生年龄
  12. 二、三级等保申请流程,二、三级等保怎么申请?二、三级等保是什么?等保测评需要多少钱?
  13. scanner练习:BMI计算
  14. 彷徨 | office快捷键大全
  15. 如何手机访问电脑服务器上的网页?
  16. 传感器课程实验:传感器静态特性研究-应变式传感器
  17. redis也可以根据经纬度查询附近的元素以及计算两个经纬度的距离???
  18. 三星android one 拍照功能,三星One UI 3.1体验:更好用了,也更注重隐私了
  19. Laravel 5.8+EasyWeChat 6.0开发公众号基本要求和文档
  20. 【web前端特效源码】使用HTML5+CSS3制作一个会动的不规则斑点边框半径动画的动画效果~~适合初学者~超简单~ |前端开发

热门文章

  1. 完美解决:调用sklearn出现诸如ImportError: cannot import name ‘LogisticR‘ from ‘sklearn.linear_model‘ (D:\Progr
  2. 一、区块链技术与应用-密码学原理
  3. ROS服务通信《客户端》 C++向服务端发送信息(乌龟案例,生成第二个乌龟)
  4. 【读万卷书】《挪威的森林》
  5. SCS【13】单细胞转录组之识别细胞对“基因集”的响应 (AUCell)
  6. 定积分的基本性质6 积分第一中值定理
  7. 批量解析域名为IP地址的shell脚本和python脚本
  8. python3中使用pip3错误syn_python-pip3错误-'_NamespacePath'对象没有属性'sort'
  9. 当“长期主义”遇上“流量生意”,轻松筹与水滴筹谁更胜一筹?
  10. 海马玩模拟器 v0.7.2 官方版