Maison  >  Article  >  développement back-end  >  Comment vérifier les prévisions météo en utilisant PHP

Comment vérifier les prévisions météo en utilisant PHP

青灯夜游
青灯夜游avant
2022-10-17 12:26:552784parcourir

Étapes pour interroger les prévisions météorologiques en PHP : 1. Ouvrez le service d'interface de prévisions météorologiques et obtenez la clé de demande d'interface ; 2. Appelez l'API de l'interface pour faire une demande d'interrogation de la météo de la ville 3. Obtenez les informations météorologiques renvoyées ; , la syntaxe est "$data = $result[ 'result'];", vous pouvez ajuster et modifier les informations en fonction de la logique métier réelle et les afficher.

Comment vérifier les prévisions météo en utilisant PHP

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur DELL G3

Comment utiliser PHP pour consulter les prévisions météo des prochains jours ? L'article suivant parlera de la requête d'interface de prévisions météorologiques gratuite basée sur PHP. J'espère qu'elle sera utile à tout le monde.

1. Ouvrez l'interface

L'interface gratuite fournie par les données agrégées utilisées par le service d'interface de prévisions météo peut être appelée 100 fois gratuitement par jour. Vous pouvez vous inscrire et activer via https://www.juhe.cn/docs/api/id/73?s=cpphpcn .

2. Lancez une requête météo de la ville via 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. Lancez une requête d'index de vie via 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;
}

Apprentissage recommandé : "Tutoriel vidéo PHP"

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer