공휴일 API
1. 코드 작성
API 신청은 생략하겠습니다. API 자체도 굉장히 쉽기 때문에 간단히 호출하는 코드를 작성해보겠습니다.
제 인생 최고의 휴일이였던 2017년 10월 데이터를 호출해보겠습니다. 기억나시나요?
// 공휴일 정보를 받아오는 함수를 작성하겠습니다.
function vaca_data() {}
year , month 정도만 있으면 될 것 같습니다.
function vaca_data($year, $month) {
$key = "****************"; your API Key
$data = 'ServiceKey='.$key;
$data .= '&solYear='.$year;
$data .= '&solMonth='.sprintf("%02d",$month);
$url = "http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getHoliDeInfo?".$data;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($ch);
curl_close($ch);
// XML to Array
$xml = simplexml_load_string($response, 'SimpleXMLElement', LIBXML_NOCDATA);
return json_decode(json_encode((array)$xml), TRUE);
}
vaca_data(2017, 10); // call
Array를 XML로 변경하는 소스를 추가했습니다.
[출력 예시]
Array
(
[header] => Array
(
[resultCode] => 00
[resultMsg] => NORMAL SERVICE.
)
[body] => Array
(
[items] => Array
(
[item] => Array
(
[0] => Array
(
[dateKind] => 01
[dateName] => 임시공휴일
[isHoliday] => Y
[locdate] => 20171002
[seq] => 2
)
[1] => Array
(
[dateKind] => 01
[dateName] => 개천절
[isHoliday] => Y
[locdate] => 20171003
[seq] => 1
)
[2] => Array
(
[dateKind] => 01
[dateName] => 추석
[isHoliday] => Y
[locdate] => 20171003
[seq] => 2
)
[3] => Array
(
[dateKind] => 01
[dateName] => 추석
[isHoliday] => Y
[locdate] => 20171004
[seq] => 1
)
[4] => Array
(
[dateKind] => 01
[dateName] => 추석
[isHoliday] => Y
[locdate] => 20171005
[seq] => 1
)
[5] => Array
(
[dateKind] => 01
[dateName] => 대체공휴일
[isHoliday] => Y
[locdate] => 20171006
[seq] => 1
)
[6] => Array
(
[dateKind] => 01
[dateName] => 한글날
[isHoliday] => Y
[locdate] => 20171009
[seq] => 1
)
)
)
[numOfRows] => 10
[pageNo] => 1
[totalCount] => 7
)
)