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

Bagaimana untuk mendapatkan data cuaca menggunakan PHP dan OpenWeatherMap API

WBOY
Lepaskan: 2023-06-19 15:08:02
asal
3662 orang telah melayarinya

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;
Salin selepas log masuk

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>
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan