如何使用PHP查询天气预报

发布时间:2022-10-17 17:19:12 作者:iii
来源:亿速云 阅读:157

这篇文章主要介绍“如何使用PHP查询天气预报”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用PHP查询天气预报”文章能帮助大家解决问题。

PHP查询天气预报的步骤:1、开通天气预报接口服务,获取接口请求Key;2、调用接口API发出请求查询城市天气;3、获取返回的天气相关信息,语法“$data = $result['result'];”,具体根据业务实际逻辑调整修改信息并输出即可。

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查询天气预报”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

推荐阅读:
  1. Android程序之全国天气预报查询接口调用
  2. python中如何使用Django实现天气预报查询网站

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:win10系统下如何查找流氓软件源头

下一篇:如何使用PHP查询IP地址归属地

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》