Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mendapatkan data cuaca menggunakan PHP dan OpenWeatherMap API

Bagaimana untuk mendapatkan data cuaca menggunakan PHP dan OpenWeatherMap API

WBOY
WBOYasal
2023-06-19 15:06:013536semak imbas

Dengan peningkatan perubahan iklim, ramalan cuaca menjadi semakin penting dalam kehidupan seharian kita. Dan bagaimana untuk mendapatkan data ramalan cuaca yang tepat di tapak web anda sendiri? PHP dan OpenWeatherMap API ialah dua pilihan popular. Berikut akan menerangkan cara menggunakan PHP dan OpenWeatherMap API untuk mendapatkan data cuaca.

1. Dapatkan kunci API

Menggunakan OpenWeatherMap API memerlukan mendapatkan kunci API. Ia adalah percuma untuk mendaftar akaun dan mendapatkan kunci API. Log masuk ke laman web OpenWeatherMap (https://openweathermap.org/) dan daftar. Pada halaman profil, pergi ke tab Kunci API dan klik butang "Jana Kunci". Kemudian anda boleh mendapatkan kunci API.

2. Cipta fail PHP

Langkah seterusnya ialah menulis kod. Buka editor Kod anda dan buat fail PHP, contohnya weather.php. Pertama, anda perlu memperkenalkan perpustakaan API OpenWeatherMap. Ini boleh dicapai dengan menambahkan kod berikut dalam pengepala:

$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;

Ambil perhatian bahawa dalam URL permintaan, anda perlu menggantikan {YOUR_API_KEY} dengan kunci API anda.

Kod penerangan:

Barisan pertama mentakrifkan alamat URL yang akan diminta, dengan q=London ialah pertanyaan untuk bandar yang ingin anda cari. Anda boleh menggantikan nama mana-mana bandar di sini.

Barisan kedua menggunakan fungsi PHP terbina dalam file_get_contents() untuk mendapatkan data respons.

Baris ketiga menukar data respons ke dalam format JSON dan menyahkodnya menggunakan json_decode.

Pernyataan gema dalam baris keempat mengeluarkan data cuaca bandar pertanyaan.

3. Perbaiki kod

Kod di atas sudah boleh mendapatkan data cuaca, tetapi untuk menjadikannya lebih lengkap dan mudah difahami, kod itu ditambah baik di bawah.

<?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>

Ini adalah program ramalan cuaca yang lebih lengkap, yang mengandungi bahagian berikut:

1 Tentukan sama ada pengguna memasukkan nama bandar, jika ya, tanya cuaca bandar yang dimasukkan, jika tidak Maklumat segera adalah output.

2. Paparkan data cuaca bandar yang ditanya dalam jadual, termasuk nama, keadaan cuaca, suhu dan kelajuan angin.

3. Gunakan gaya CSS untuk mencantikkan halaman.

4. Berakhir

Itu sahaja untuk melaksanakan penggunaan PHP dan OpenWeatherMap API untuk mendapatkan data cuaca. Selagi anda mendaftar akaun OpenWeatherMap, anda boleh mendapatkan kunci API dengan mudah dan mula mendapatkan data cuaca masa nyata. Sama ada anda sedang membina tapak web, apl atau memerlukan data cuaca untuk membantu anda merancang, langkah ini akan membantu anda mencapai matlamat anda dengan mudah.

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan data cuaca menggunakan PHP dan OpenWeatherMap API. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn