이번달 가져오기 오류

이번달 가져오기 오류

QA

이번달 가져오기 오류

본문


<?php

$ch = curl_init();
$url = 'http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getRestDeInfo'; /*URL*/
$today = date('Y-m-d');
$ss = date('Y');
$ss1 = date('04');
$queryParams = '?' . urlencode('serviceKey') . '=XOF2kmoeLs09B60ccCpdjBDu1aTUM9RQRyLfgJPxV3Z0TPmpnj1NtbwTssTQxLVHMqo3suOmDb8b%2BDat9%2FihPw%3D%3D'; 
$queryParams .= '&' . urlencode('solYear') . '=' . urlencode($ss); 
$queryParams .= '&' . urlencode('solMonth') . '=' . urlencode($ss1);

curl_setopt($ch, CURLOPT_URL, $url . $queryParams);
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 = simplexml_load_string($response);
            foreach ($xml->body->items->item as $item) {
                $key = substr($item->locdate,0,4).'-'.substr($item->locdate,4,2).'-'.substr($item->locdate,6,2);
                $val = $item->dateName.'';
                $isholi = $item->isHoliday.'';

                $display[] = array(
                    'date' => $key
                    , 'name' => $val
                    , 'isholi' => $isholi
                );
            }
$today = date('Y-m-d');
$ho = 0; // 기본값은 공휴일 아님
foreach ($display as $holiday) {
    if ($holiday['date'] == $today) {
        $ho = $holiday['isholi']; // 공휴일이면 Y, 아니면 0
        break;
    }
}
echo "<pre>";
print_r($ss);
echo "</pre>";
echo "<pre>";
print_r($ss1);
echo "</pre>";
echo "<pre>";
print_r($ho);
echo "</pre>";
?>

 

$ss1 = date('04');   이처럼 월 부분에 숫자로 직접 넣으면 오류메세지가 없습니다

하지만

$ss1 = date('m');  이번달을 자동으로 가져오게 해서 테스트하면

Warning: Invalid argument supplied for foreach() in /hosting/sun76841/html/4444(화면출력).php on line 44

2025
04
04

이런 에러메세지가 나옵니다

하지만 위와 같이 변수 출력은 제대료 출력이 됩니다

44번째 줄은     ---> foreach ($display as $holiday) {    입니다

오류 메세지가 나오는 이유가 무엇을까요?

이 질문에 댓글 쓰기 :

답변 1

다음 코드가 도움이 될지 모르겠습니다.

 


...
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($ch);
curl_close($ch);

$display = []; //

 $xml = simplexml_load_string($response);
...
답변을 작성하시기 전에 로그인 해주세요.
전체 129,406 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT