Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menyemak ramalan cuaca menggunakan PHP

Cara menyemak ramalan cuaca menggunakan PHP

青灯夜游
青灯夜游ke hadapan
2022-10-17 12:26:552810semak imbas

Langkah untuk menanyakan ramalan cuaca dalam PHP: 1. Buka perkhidmatan antara muka ramalan cuaca dan dapatkan kunci permintaan antara muka 2. Panggil API antara muka untuk membuat permintaan untuk menanyakan cuaca bandar; maklumat berkaitan cuaca, sintaksnya ialah "$data = $result['result'];", anda boleh melaraskan dan mengubah suai maklumat mengikut logik perniagaan sebenar dan mengeluarkannya.

Cara menyemak ramalan cuaca menggunakan PHP

Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 8.1, komputer DELL G3

Cara menggunakan PHP untuk menyemak cuaca ramalan untuk beberapa hari akan datang? Artikel berikut akan membincangkan pertanyaan antara muka ramalan cuaca percuma berdasarkan PHP. Saya harap ia akan membantu semua orang.

1 Buka antara muka

Antara muka percuma yang disediakan oleh data agregat yang digunakan oleh perkhidmatan antara muka ramalan cuaca boleh dipanggil 100 kali setiap hari secara percuma. Anda boleh mendaftar dan mengaktifkan melalui https://www.juhe.cn/docs/api/id/73?s=cpphpcn .

2 Mulakan pertanyaan cuaca bandar melalui 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 🎜>

// 请求的接口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;
}
Pembelajaran yang disyorkan: "

Tutorial Video PHP"

Atas ialah kandungan terperinci Cara menyemak ramalan cuaca menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:sdk.cn. Jika ada pelanggaran, sila hubungi admin@php.cn Padam