>백엔드 개발 >PHP 튜토리얼 >PHP와 OpenWeatherMap API를 사용하여 날씨 데이터를 얻는 방법

PHP와 OpenWeatherMap API를 사용하여 날씨 데이터를 얻는 방법

WBOY
WBOY원래의
2023-06-19 15:06:013659검색

기후변화가 심화되면서 일기예보는 우리 일상생활에서 점점 더 중요해지고 있습니다. 그리고 자신의 웹사이트에서 정확한 일기예보 데이터를 얻는 방법은 무엇입니까? PHP와 OpenWeatherMap API는 널리 사용되는 두 가지 선택입니다. PHP와 OpenWeatherMap API를 사용하여 날씨 데이터를 얻는 방법은 다음과 같습니다.

1. API 키 얻기

OpenWeatherMap API를 사용하려면 API 키를 얻어야 합니다. 계정을 등록하고 API 키를 받는 것은 완전히 무료입니다. OpenWeatherMap 웹사이트(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은 검색하려는 도시에 대한 쿼리입니다. 여기서 도시 이름을 바꿀 수 있습니다.

두 번째 줄에서는 PHP 내장 함수 file_get_contents()를 사용하여 응답 데이터를 얻습니다.

세 번째 줄은 응답 데이터를 JSON 형식으로 변환하고 json_decode를 사용하여 디코딩합니다.

네 번째 줄의 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. Ending

날씨 데이터를 얻기 위해 PHP와 OpenWeatherMap API를 사용하여 구현하는 것입니다. OpenWeatherMap 계정을 등록하기만 하면 API 키를 쉽게 얻을 수 있고 실시간 날씨 데이터를 얻을 수 있습니다. 웹사이트나 앱을 구축하거나 계획을 세우는 데 날씨 데이터가 필요한 경우에도 이러한 단계를 통해 목표를 쉽게 달성할 수 있습니다.

위 내용은 PHP와 OpenWeatherMap API를 사용하여 날씨 데이터를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.