ホームページ >バックエンド開発 >PHPチュートリアル >PHP と OpenWeatherMap API を使用して気象データを取得する方法

PHP と OpenWeatherMap API を使用して気象データを取得する方法

WBOY
WBOYオリジナル
2023-06-19 15:06:013659ブラウズ

気候変動が激化するにつれ、私たちの日常生活における天気予報の重要性がますます高まっています。そして、自分の Web サイトで正確な天気予報データを取得するにはどうすればよいでしょうか? PHP と OpenWeatherMap API の 2 つは一般的な選択肢です。ここでは、PHP と OpenWeatherMap API を使用して気象データを取得する方法について説明します。

1. API キーの取得

OpenWeatherMap API を使用するには、API キーを取得する必要があります。アカウントの登録と API キーの取得は完全に無料です。 OpenWeatherMap Web サイト (https://openweathermap.org/) にログインして登録します。プロフィール ページで、[API キー] タブに移動し、[キーの生成] ボタンをクリックします。その後、API キーを取得できます。

2. PHP ファイルの作成

次のステップはコードを作成することです。コード エディターを開き、PHP ファイル (例:weather.php) を作成します。まず、OpenWeatherMap API ライブラリを導入する必要があります。これを実現するには、ヘッダーに次のコードを追加します。

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

リクエスト URL では、{YOUR_API_KEY} を API キーに置き換える必要があることに注意してください。

説明コード:

最初の行は、要求する URL アドレスを定義します。ここで、q=London は検索する都市です。ここで任意の都市の名前を置き換えることができます。

2 行目では、PHP 組み込み関数 file_get_contents() を使用して応答データを取得します。

3 行目では、応答データを JSON 形式に変換し、json_decode を使用してデコードします。

4 行目の echo ステートメントは、クエリされた都市の気象データを出力します。

3. コードの改善

上記のコードはすでに気象データを取得できますが、より完全で理解しやすくするために、以下のコードを改善します。

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

これは、より完全な天気予報プログラムであり、次の部分が含まれています:

1. ユーザーが都市名を入力したかどうかを判断し、入力した場合は、入力した都市の天気をクエリします。そうでない場合は、プロンプト情報が出力されます。

2. クエリされた都市の名前、気象条件、気温、風速などの気象データをテーブルに表示します。

3. CSS スタイルを使用してページを美しくします。

4. 終了

PHP と OpenWeatherMap API を使用して気象データを取得する実装は以上です。 OpenWeatherMap アカウントを登録するだけで、簡単に API キーを取得し、リアルタイムの気象データの取得を開始できます。 Web サイトやアプリを構築している場合でも、計画を立てるために気象データが必要な場合でも、これらの手順を実行すると、目標を簡単に達成できます。

以上がPHP と OpenWeatherMap API を使用して気象データを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。