Heim >Backend-Entwicklung >PHP-Tutorial >So erhalten Sie Wetterdaten mit PHP und der OpenWeatherMap-API

So erhalten Sie Wetterdaten mit PHP und der OpenWeatherMap-API

WBOY
WBOYOriginal
2023-06-19 15:06:013619Durchsuche

Mit der Verschärfung des Klimawandels ist die Wettervorhersage in unserem täglichen Leben immer wichtiger geworden. Und wie erhält man genaue Wettervorhersagedaten auf der eigenen Website? PHP und OpenWeatherMap API sind zwei beliebte Optionen. Im Folgenden wird beschrieben, wie Sie PHP und die OpenWeatherMap-API verwenden, um Wetterdaten zu erhalten.

1. API-Schlüssel erhalten

Für die Verwendung der OpenWeatherMap-API ist der Erwerb eines API-Schlüssels erforderlich. Es ist völlig kostenlos, ein Konto zu registrieren und einen API-Schlüssel zu erhalten. Melden Sie sich auf der OpenWeatherMap-Website (https://openweathermap.org/) an und registrieren Sie sich. Gehen Sie auf der Profilseite zur Registerkarte „API-Schlüssel“ und klicken Sie auf die Schaltfläche „Schlüssel generieren“. Dann können Sie den API-Schlüssel erhalten.

2. PHP-Datei erstellen

Der nächste Schritt besteht darin, den Code zu schreiben. Öffnen Sie Ihren Code-Editor und erstellen Sie eine PHP-Datei, zum Beispiel Weather.php. Zunächst müssen Sie die OpenWeatherMap-API-Bibliothek vorstellen. Dies kann erreicht werden, indem Sie den folgenden Code in den Header einfügen:

$httpRequestURI = 'https://api.openweathermap.org/data/2.5/weather?q=London&appid={YOUR_API_KEY}';
$response = file_get_contents($httpRequestURI);
$data = json_decode($response);
echo $data->weather[0]->description;

Beachten Sie, dass Sie in der Anforderungs-URL {YOUR_API_KEY} durch Ihren API-Schlüssel ersetzen müssen.

Erklärung des Codes:

Die erste Zeile definiert die anzufordernde URL-Adresse, wobei q=London die Abfrage für die Stadt ist, nach der Sie suchen möchten. Sie können hier den Namen einer beliebigen Stadt ersetzen.

Die zweite Zeile verwendet die in PHP integrierte Funktion file_get_contents(), um die Antwortdaten abzurufen.

Die dritte Zeile konvertiert die Antwortdaten in das JSON-Format und dekodiert sie mit json_decode.

Die Echo-Anweisung in der vierten Zeile gibt die Wetterdaten der abgefragten Stadt aus.

3. Verbessern Sie den Code

Der obige Code kann bereits Wetterdaten abrufen, aber um ihn vollständiger und verständlicher zu machen, wurde der Code unten verbessert.

<?php 
if(isset($_POST['city'])) {
    $cityName = $_POST['city'];
    $apikey = "{YOUR_API_KEY}";
    $url = "http://api.openweathermap.org/data/2.5/weather?q=".$cityName."&appid=".$apikey."&lang=zh-cn";
    $data = file_get_contents($url);
    $weatherData = json_decode($data);
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>Weather Report Using PHP and OpenWeatherMap API</title>
    <style>
        #card {
            background-color: #F1F1F1;
            padding: 20px;
            border-radius: 10px;
            width: fit-content;
            margin: 0 auto;
            margin-top: 10%;
        }

        .headtext {
            margin: 0;
            padding: 0;
            font-size: 30px;
            font-weight: 500;
            margin-bottom: 10px;
        }

        .subtext {
            margin: 0;
            padding: 0;
            font-size: 20px;
            color: #F44336;
        }

        .data {
            width: 100%;
            margin-top: 20px;
            border-top: 1px solid #000;
            border-collapse: collapse;
        }

        .data th {
            border-bottom: 1px solid #000;
            padding: 10px;
            text-align: left;
        }

        .data td {
            padding: 10px;
        }

        input[type=text]{
            width: 50%;
            border-radius: 5px;
            padding: 10px;
        }

        button {
            padding: 10px;
            background-color: #F44336;
            border: none;
            color: #fff;
            border-radius: 5px;
            cursor: pointer;
        }
    </style>
</head>
<body>
    <div id="card">
        <p class="headtext">天气预报</p>
        <form method="post" action="">
            <input type="text" name="city" placeholder="输入需要查询的城市" />
            <button type="submit">查询</button>
        </form>
        <?php if(isset($weatherData)) { ?>
            <table class="data">
                <tr>
                    <th>城市名</th>
                    <th>天气状况</th>
                    <th>温度</th>
                    <th>风速</th>
                </tr>
                <tr>
                    <td><?php echo $weatherData->name; ?></td>
                    <td><?php echo $weatherData->weather[0]->description; ?></td>
                    <td><?php echo $weatherData->main->temp; ?> &#8451;</td>
                    <td><?php echo $weatherData->wind->speed; ?> m/s</td>
                </tr>
            </table>
        <?php } else { ?>
             <p class="subtext">请输入城市名以获取天气状况。</p>
        <?php } ?>
    </div>
</body>
</html>

Dies ist ein umfassenderes Wettervorhersageprogramm, das die folgenden Teile enthält:

1. Bestimmen Sie, ob der Benutzer einen Stadtnamen eingibt. Wenn ja, fragen Sie das Wetter der eingegebenen Stadt ab. Wenn nicht, geben Sie eine Eingabeaufforderung aus.

2. Zeigen Sie die Wetterdaten der abgefragten Stadt in der Tabelle an, einschließlich Name, Wetterbedingungen, Temperatur und Windgeschwindigkeit.

3. Verwenden Sie CSS-Stile, um die Seite zu verschönern.

4. Ende

Das ist alles für die Implementierung mit PHP und der OpenWeatherMap-API zum Abrufen von Wetterdaten. Solange Sie ein OpenWeatherMap-Konto registrieren, können Sie ganz einfach einen API-Schlüssel erhalten und mit dem Abrufen von Echtzeit-Wetterdaten beginnen. Egal, ob Sie eine Website oder eine App erstellen oder sogar Wetterdaten zur Planung benötigen, mit diesen Schritten können Sie Ihre Ziele problemlos erreichen.

Das obige ist der detaillierte Inhalt vonSo erhalten Sie Wetterdaten mit PHP und der OpenWeatherMap-API. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn