$kma = iconv('euc-kr', 'utf-8', $kma);
            $pattern = '#<dd\s+class="now_weather1_left[^<]+<img\s+src="/images/icon/DY/(.*)\..+alt="(.*)"[\s\S]+temp1.*>(\-?\d{1,2}).*</dd>[^>]+>(.*)</dd>[^>]+>(.*)</dd>[^>]+>(.*)</dd>#';
            preg_match($pattern, $kma, $matches);
            $new_data->weather->class = substr($matches[1], 0, -2);
            $new_data->weather->txt = $matches[2];
            $new_data->weather->temp = $matches[3];
            $new_data->weather->wind = $matches[4];
            $new_data->weather->humidity = $matches[5];
            $new_data->weather->rainfall = $matches[6];
            $new_data->weather->time = date('H:i');

 

 

 

위와 같은 방법으로 현재 날씨 정보를 확인했었는데 

 

금일 기상청에서 변경사항이 있었습니다.

 

현재 날씨를 못가져오는 것의 원인을 살펴보다가

 

 

첫번째 가장 큰 문제는 

 

현재 날씨가 강수가 있지 않는 경우 아무 아이콘이 나타나지 않게 바뀐 듯 합니다.

그래서 맑음 ? 일때 정보를 못가져오는 것 같습니다. 아마도 기존에는 맑음인 경우는 태양을 표시했지 싶습니다.

 

그리고 비가 오는 곳의 지역으로 변경해보니 날씨를 가져오긴 하는데 습도를 못가져오는지 0%로 표시가 되네요.

 

  • profile
    날씨 아이콘, alt 값이 없을 수 있습니다. 현재 강우가 없다면 이 아이콘이 표시가 되지 않는 것 같습니다.
    이런 경우를 고려해서 수정해야 할 것 같은데 너무 어려운 문제네요.
  • profile
    동네 예보쪽 살펴보니 현재 날씨 상황을 전혀 제공을 안하네요 @.@
    현재 기온만 제공하고 날이 맑은지 흐린지등의 정보는 전혀 알수가 없네요.
    "현재날씨는 10분 단위로 갱신되며, 날씨 아이콘은 강수가 있는 경우에만 제공됩니다."라는 문구가 있는걸로 봐서는 비나 눈이 내릴때는 현재 날씨 상황을 제공하나 보네요...

    다음시간의 날씨 상황을 가져다 사용하는 방법등을 생각해 봐야겠습니다.
  • profile profile
    네. 가장 크게 바뀐 부분이 현재 날씨에서 강수 등이 없으면 문제가 발생하는 부분입니다.

    혹시 이 기회에 api로 전환하는건 어떨까요? api에서도 설마 현재 날씨 상황을 제공하지 않나요??
  • profile

    https://www.data.go.kr/dataset/15000099/openapi.do
    주말에는 바빠서 오늘 api 개발계정 신청해서 테스트 해봤습니다. 날씨 표시 하는데까지는 성공했습니다. 좀더 다듬어서 이번주내로 자료 업데이트 하겠습니다.

     

  • profile profile
    좋은자료 계속 사용할수 있게 해주셔서 감사합니다.
  • profile profile
    이제 XE를 사용하지않아서 한동안 손놓고 있었더니 제가 짰던 코드를 이해하는데도 한참 걸리네요 ㅎㅎㅎ
    아무튼 캐시 관리 부분등(날씨와 미세먼지를 개별 캐시로 운영)을 더 손보고 있습니다.