테스트 사이트 - 개발 중인 베타 버전입니다

이번달 가져오기 오류 채택완료

은빛여전사 6개월 전 조회 1,748

</p>

<p><?php</p>

<p>

$ch = curl_init();

$url = '<a href="http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getRestDeInfo';" target="_blank" rel="noopener noreferrer">http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getRestDeInfo';</a> /*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);</p>

<p>

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);</p>

<p> $xml = simplexml_load_string($response);</p>

<p>            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.'';</p>

<p>

                $display[] = array(

                    'date' => $key

                    , 'name' => $val

                    , 'isholi' => $isholi

                );

            }</p>

<p>$today = date('Y-m-d');

$ho = 0; // 기본값은 공휴일 아님</p>

<p>foreach ($display as $holiday) {

    if ($holiday['date'] == $today) {

        $ho = $holiday['isholi']; // 공휴일이면 Y, 아니면 0

        break;

    }

}</p>

<p>echo "<pre>";

print_r($ss);

echo "</pre>";

echo "<pre>";

print_r($ss1);

echo "</pre>";

echo "<pre>";

print_r($ho);

echo "</pre>";</p>

<p>?></p>

<p>

 

$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개

채택된 답변
+20 포인트
6개월 전

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

 

</p>

<p>...</p>

<p>curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

$response = curl_exec($ch);

curl_close($ch);</p>

<p>

$display = []; //</p>

<p>

 $xml = simplexml_load_string($response);</p>

<p>...</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

은빛여전사
6개월 전
감사합니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인