ホームページ  >  記事  >  バックエンド開発  >  PHPを使用して天気予報を確認する方法

PHPを使用して天気予報を確認する方法

青灯夜游
青灯夜游転載
2022-10-17 12:26:552779ブラウズ

PHP で天気予報をクエリする手順: 1. 天気予報インターフェイス サービスを開き、インターフェイス リクエスト キーを取得します。2. インターフェイス API を呼び出して都市の天気をクエリするリクエストを作成します。3. 返されたキーを取得します。気象関連情報の場合、構文は「$data = $result['result'];」となり、実際のビジネスロジックに合わせて情報を調整・修正して出力できます。

PHPを使用して天気予報を確認する方法

このチュートリアルの動作環境: Windows7 システム、PHP バージョン 8.1、DELL G3 コンピューター

PHP を使用して天気予報を確認する方法今後数日間 ?次の記事では、PHP をベースにした無料の天気予報インターフェイス クエリについて説明します。

1. インターフェイスを開く

#天気予報インターフェイス サービスで使用される集約データによって提供される無料インターフェイスは 100 回呼び出すことができます1日あたり無料。 https://www.juhe.cn/docs/api/id/73?s=cpphpcn を通じて登録およびアクティブ化できます。

2. PHP を介して都市の天気クエリを開始します

<?php
// 请求的接口URL
$apiUrl = &#39;http://apis.juhe.cn/simpleWeather/query&#39;;
// 请求参数
$params = [
    &#39;city&#39; => &#39;苏州&#39;, // 要查询的城市
    &#39;key&#39; => &#39;您申请的接口调用Key&#39;
];
$paramsString = http_build_query($params);

// 发起接口网络请求
$response = juheHttpRequest($apiUrl, $paramsString , 1);
$result = json_decode($response, true);
if ($result) {
    $errorCode = $result[&#39;error_code&#39;];
    if ($errorCode == 0) {
        // 获取返回的天气相关信息,具体根据业务实际逻辑调整修改
        $data = $result[&#39;result&#39;];

        // 打印当前实况天气信息
        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, &#39;Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36&#39;);
    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.&#39;?&#39;.$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 = &#39;http://apis.juhe.cn/simpleWeather/life&#39;;
// 请求参数
$params = [
    &#39;city&#39; => &#39;苏州&#39;, // 要查询的城市
    &#39;key&#39; => &#39;您申请的接口调用Key&#39;
];
$paramsString = http_build_query($params);

// 发起接口网络请求
$response = juheHttpRequest($apiUrl, $paramsString , 1);
$result = json_decode($response, true);
if ($result) {
    $errorCode = $result[&#39;error_code&#39;];
    if ($errorCode == 0) {
        // 获取返回的天气相关信息,具体根据业务实际逻辑调整修改
        $data = $result[&#39;result&#39;][&#39;life&#39;];

        // 打印当前实况天气信息
        echo "空调指数:{$data[&#39;kongtiao&#39;][&#39;v&#39;]},{$data[&#39;kongtiao&#39;][&#39;des&#39;]}".PHP_EOL;
        echo "过敏指数:{$data[&#39;guomin&#39;][&#39;v&#39;]},{$data[&#39;guomin&#39;][&#39;des&#39;]}".PHP_EOL;
        echo "舒适度指数:{$data[&#39;shushidu&#39;][&#39;v&#39;]},{$data[&#39;shushidu&#39;][&#39;des&#39;]}".PHP_EOL;
        echo "穿衣指数:{$data[&#39;chuanyi&#39;][&#39;v&#39;]},{$data[&#39;chuanyi&#39;][&#39;des&#39;]}".PHP_EOL;
        echo "钓鱼指数:{$data[&#39;diaoyu&#39;][&#39;v&#39;]},{$data[&#39;diaoyu&#39;][&#39;des&#39;]}".PHP_EOL;
        echo "感冒指数:{$data[&#39;ganmao&#39;][&#39;v&#39;]},{$data[&#39;ganmao&#39;][&#39;des&#39;]}".PHP_EOL;
        echo "紫外线指数:{$data[&#39;ziwaixian&#39;][&#39;v&#39;]},{$data[&#39;ziwaixian&#39;][&#39;des&#39;]}".PHP_EOL;
        echo "洗车指数:{$data[&#39;xiche&#39;][&#39;v&#39;]},{$data[&#39;xiche&#39;][&#39;des&#39;]}".PHP_EOL;
        echo "运动指数:{$data[&#39;yundong&#39;][&#39;v&#39;]},{$data[&#39;yundong&#39;][&#39;des&#39;]}".PHP_EOL;
        echo "带伞指数:{$data[&#39;daisan&#39;][&#39;v&#39;]},{$data[&#39;daisan&#39;][&#39;des&#39;]}".PHP_EOL;
        // .......

    } else {
        // 请求异常
        echo "请求异常:{$errorCode}_{$result["reason"]}".PHP_EOL;
    }
} else {
    // 可能网络异常等问题,无法正常获得相应内容,业务逻辑可自行修改
    echo "请求异常".PHP_EOL;
}

推奨学習: 「PHP ビデオ チュートリアル

以上がPHPを使用して天気予報を確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsdk.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。