기상청 날씨 연동
PHP를 이용하여 xml로 된 기상청 데이터를 받아서 뿌려보자
<?php
function objectsIntoArray($arrObjData, $arrSkipIndices = array())
{
$arrData = array();
// if input is object, convert into array
if (is_object($arrObjData)) {
$arrObjData = get_object_vars($arrObjData);
}
if (is_array($arrObjData)) {
foreach ($arrObjData as $index => $value) {
if (is_object($value) || is_array($value)) {
$value = objectsIntoArray($value, $arrSkipIndices); // recursive call
}
if (in_array($index, $arrSkipIndices)) {
continue;
}
$arrData[$index] = $value;
}
}
return $arrData;
}
$xmlUrl_W = "http://www.kma.go.kr/wid/queryDFS.jsp?gridx=56&gridy=92"; // 서해
$xmlStr_W = file_get_contents($xmlUrl_W); // 서해
$xmlObj_W = simplexml_load_string($xmlStr_W); // 서해
$arrXml_W = objectsIntoArray($xmlObj_W); // 서해
$tomorrow=11-($arrXml_W[body][data][0][hour]/3); //다음날 오전 9시기준
$wArray=Array("","맑음","구름조금","구름많음","흐림","비","눈/비","눈");
// 서해 현재날씨 알아보기
for($i=1;$i<(count($wArray)+1);$i++){
if($wArray[$i]==$arrXml_W[body][data][0][wfKor]){
$wNum_W=$i; // 서해 현재날씨
}
}
// 서해 내일날씨 알아보기
for($i=1;$i<(count($wArray)+1);$i++){
if($wArray[$i]==$arrXml_W[body][data][8][wfKor]){
$wNum_W2=$i; // 서해 내일날씨
}
}
?>
<!--서해-->
<div id="Wweather">
<div class="day">
<!--오늘-->
<div class="W">
<div class="w_icon"><img src="images/w<?=$wNum_W?>.gif"></div>
<div class="per"><?=$arrXml_W[body][data][0][wfKor]?></div>
</div>
<div class="W">
<div class="tempA"><?=$arrXml_W[body][data][0][temp]?>℃</div>
<div class="tempB"><font style="font-size:12px;">강수확률</font>:</div>
<div class="tempC"><?=$arrXml_W[body][data][0][pop]?>%</div>
</div>
</div>
<div class="day">
<!--내일-->
<div class="W">
<div class="w_icon"><img src="images/w<?=$wNum_W2?>.gif"></div>
<div class="per"><?=$arrXml_W[body][data][$tomorrow][wfKor]?></div>
</div>
<div class="W">
<div class="tempA"><?=$arrXml_W[body][data][$tomorrow][temp]?>℃</div>
<div class="tempB"><font style="font-size:12px;">강수확률</font>:</div>
<div class="tempC"><?=$arrXml_W[body][data][$tomorrow][pop]?>%</div>
</div>
</div>
</div>
이런식으로 가공해서 사용하면 된다.