一文教会大家使用PHP查询天气预报

本文是关于PHP的知识分享,旨在帮助大家学会使用PHP查询天气预报,详细步骤大致如下:


1、开通天气预报接口服务,获取接口请求Key;

2、调用接口API发出请求查询城市天气;

3、获取返回的天气相关信息,语法“$data = $result['result'];”,具体根据业务实际逻辑调整修改信息并输出即可。


一文教会大家使用PHP查询天气预报


一文教会大家使用PHP查询天气预报


1、开通接口


天气预报接口服务使用的聚合数据提供的免费接口,每天可以100次免费调用。可以通过 https://www.juhe.cn/docs/api/id/73?s=cpphpcn 注册及开通。


2、通过PHP发起城市天气查询


<?php
// 请求的接口URL
$apiUrl = 'http://apis.juhe.cn/simpleWeather/query';
// 请求参数
$params = [
    'city' => '苏州', // 要查询的城市
    'key' => '您申请的接口调用Key'
];
$paramsString = http_build_query($params);
 
// 发起接口网络请求
$response = juheHttpRequest($apiUrl, $paramsString , 1);
$result = json_decode($response, true);
if ($result) {
    $errorCode = $result['error_code'];
    if ($errorCode == 0) {
        // 获取返回的天气相关信息,具体根据业务实际逻辑调整修改
        $data = $result['result'];
 
        // 打印当前实况天气信息
        echo "当前城市:{$data["city"]}".PHP_EOL;
        echo "当前温度:{$data["realtime"]["temperature"]}".PHP_EOL;
        echo "当前湿度:{$data["realtime"]["humidity"]}".PHP_EOL;
        echo "当前天气:{$data["realtime"]["info"]}".PHP_EOL;
        echo "当前风向:{$data["realtime"]["direct"]}".PHP_EOL;
        echo "当前风力:{$data["realtime"]["power"]}".PHP_EOL;
        echo "当前空气质量:{$data["realtime"]["aqi"]}".PHP_EOL;
 
    } else {
        // 请求异常
        echo "请求异常:{$errorCode}_{$result["reason"]}".PHP_EOL;
    }
} else {
    // 可能网络异常等问题,无法正常获得相应内容,业务逻辑可自行修改
    echo "请求异常".PHP_EOL;
}
 
/**
 * 发起网络请求函数
 * @param $url 请求的URL
 * @param bool $params 请求的参数内容
 * @param int $ispost 是否POST请求
 * @return bool|string 返回内容
 */
function juheHttpRequest($url, $params = false, $ispost = 0)
{
    $httpInfo = array();
    $ch = curl_init();
 
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36');
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
    curl_setopt($ch, CURLOPT_TIMEOUT, 12);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 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;
}


3、通过PHP发起生活指数查询


// 请求的接口URL
$apiUrl = 'http://apis.juhe.cn/simpleWeather/life';
// 请求参数
$params = [
    'city' => '苏州', // 要查询的城市
    'key' => '您申请的接口调用Key'
];
$paramsString = http_build_query($params);
 
// 发起接口网络请求
$response = juheHttpRequest($apiUrl, $paramsString , 1);
$result = json_decode($response, true);
if ($result) {
    $errorCode = $result['error_code'];
    if ($errorCode == 0) {
        // 获取返回的天气相关信息,具体根据业务实际逻辑调整修改
        $data = $result['result']['life'];
 
        // 打印当前实况天气信息
        echo "空调指数:{$data['kongtiao']['v']},{$data['kongtiao']['des']}".PHP_EOL;
        echo "过敏指数:{$data['guomin']['v']},{$data['guomin']['des']}".PHP_EOL;
        echo "舒适度指数:{$data['shushidu']['v']},{$data['shushidu']['des']}".PHP_EOL;
        echo "穿衣指数:{$data['chuanyi']['v']},{$data['chuanyi']['des']}".PHP_EOL;
        echo "钓鱼指数:{$data['diaoyu']['v']},{$data['diaoyu']['des']}".PHP_EOL;
        echo "感冒指数:{$data['ganmao']['v']},{$data['ganmao']['des']}".PHP_EOL;
        echo "紫外线指数:{$data['ziwaixian']['v']},{$data['ziwaixian']['des']}".PHP_EOL;
        echo "洗车指数:{$data['xiche']['v']},{$data['xiche']['des']}".PHP_EOL;
        echo "运动指数:{$data['yundong']['v']},{$data['yundong']['des']}".PHP_EOL;
        echo "带伞指数:{$data['daisan']['v']},{$data['daisan']['des']}".PHP_EOL;
        // .......
 
    } else {
        // 请求异常
        echo "请求异常:{$errorCode}_{$result["reason"]}".PHP_EOL;
    }
} else {
    // 可能网络异常等问题,无法正常获得相应内容,业务逻辑可自行修改
    echo "请求异常".PHP_EOL;
}


大家学会使用PHP查询天气预报了吗?翼速应用平台内有更多相关资讯,欢迎查阅!


我来说两句

0 条评论

推荐阅读

  • 响应式布局CSS媒体查询设备像素比介绍

    构建响应式网站布局最常见的是流体网格,灵活调整大小的站点布局技术,确保用户在使用的幕上获得完整的体验。响应式设计如何展示富媒体图像,可以通过以下几种方法。

    admin
  • 提升网站的性能快速加载的实用技巧

    网站速度很重要,快速加载的网站会带来更好的用户体验、更高的转化率、更多的参与度,而且在搜索引擎排名中也扮演重要角色,做SEO,网站硬件是起跑线,如果输在了起跑线,又怎么跟同行竞争。有许多方法可提升网站的性能,有一些技巧可以避免踩坑。

    admin
  • 织梦CMS TAG页找不到标签和实现彩色标签解决方法

    织梦cms是我们常见的网站程序系统的一款,在TAG标签中常常遇到的问题也很多。当我们点击 tags.php 页的某个标签的时候,有时会提示:“系统无此标签,可 能已经移除!” 但是我们检查程序后台,以及前台显示页面。这个标签确实存在,如果解决这个问题那?

    admin
  • HTML关于fieldset标签主要的作用

    在前端开发html页面中常用的标签很多,今天为大家带来的是关于HTML中fieldset标签主要的作用说明,根据技术分析HTML

    admin

精选专题