문제 페이지 주소 | 비공개 (작성 후 5일 경과) |
---|
$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%로 표시가 되네요.
댓글 6
이런 경우를 고려해서 수정해야 할 것 같은데 너무 어려운 문제네요.
현재 기온만 제공하고 날이 맑은지 흐린지등의 정보는 전혀 알수가 없네요.
"현재날씨는 10분 단위로 갱신되며, 날씨 아이콘은 강수가 있는 경우에만 제공됩니다."라는 문구가 있는걸로 봐서는 비나 눈이 내릴때는 현재 날씨 상황을 제공하나 보네요...
다음시간의 날씨 상황을 가져다 사용하는 방법등을 생각해 봐야겠습니다.
혹시 이 기회에 api로 전환하는건 어떨까요? api에서도 설마 현재 날씨 상황을 제공하지 않나요??
https://www.data.go.kr/dataset/15000099/openapi.do
주말에는 바빠서 오늘 api 개발계정 신청해서 테스트 해봤습니다. 날씨 표시 하는데까지는 성공했습니다. 좀더 다듬어서 이번주내로 자료 업데이트 하겠습니다.
아무튼 캐시 관리 부분등(날씨와 미세먼지를 개별 캐시로 운영)을 더 손보고 있습니다.