현재 날씨 가져오는 부분
관련링크
http://openweathermap
45회 연결
본문
$url = "https://api.openweathermap.org/data/2.5/forecast?lat=35.17332899587668&lon=129.13085319903072&lang=en&units=metric&appid=appkey";
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
$jsondata = json_decode($response);
echo '<pre>';
print_r($jsondata);
echo '#';
echo '<bR>';
위와 같이 작업해서 웹에서 보면 아래와 같이 출력이 됩니다.
여기에서 첫번째 부분의 온도 [temp] => 24.44 를 가져오려고 하면
echo 어떻게 호출을 해야될까요?
stdClass Object
(
[cod] => 200
[message] => 0
[cnt] => 40
[list] => Array
(
[0] => stdClass Object
(
[dt] => 1654257600
[main] => stdClass Object
(
[temp] => 24.44
[feels_like] => 24.11
[temp_min] => 19.43
[temp_max] => 24.44
[pressure] => 1011
[sea_level] => 1011
[grnd_level] => 1011
[humidity] => 45
[temp_kf] => 5.01
)
[weather] => Array
(
[0] => stdClass Object
(
[id] => 800
[main] => Clear
[description] => clear sky
[icon] => 01n
)
)
[clouds] => stdClass Object
(
[all] => 8
)
[wind] => stdClass Object
(
[speed] => 5.79
[deg] => 36
[gust] => 9.08
)
[visibility] => 10000
[pop] => 0
[sys] => stdClass Object
(
[pod] => n
)
[dt_txt] => 2022-06-03 12:00:00
)
[1] => stdClass Object
(
[dt] => 1654268400
[main] => stdClass Object
(
[temp] => 21.1
[feels_like] => 20.91
[temp_min] => 18.18
[temp_max] => 21.1
[pressure] => 1012
[sea_level] => 1012
[grnd_level] => 1012
[humidity] => 63
[temp_kf] => 2.92
)
[weather] => Array
(
[0] => stdClass Object
(
[id] => 802
[main] => Clouds
[description] => scattered clouds
[icon] => 03n
)
)
[clouds] => stdClass Object
(
[all] => 35
)
[wind] => stdClass Object
(
[speed] => 4.82
[deg] => 27
[gust] => 7.32
)
[visibility] => 10000
[pop] => 0
[sys] => stdClass Object
(
[pod] => n
)
[dt_txt] => 2022-06-03 15:00:00
)
답변 2
$jsondata = json_decode($response);
->
$arr = json_decode($response, true);
echo $arr['list'][0]['main']['temp'];
//print_r($jsondata);
echo $jsondata->list[0]->main->temp;
이러면 되지 않을까요?
답변을 작성하시기 전에 로그인 해주세요.