TIP게시판

제목 기상청 위성사진을 뛰워 봅시다!
글쓴이 darkninja 작성시각 2014/07/02 13:09:06
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 12852   RSS

여름입니다.
기상정보가 많이 필요할때입니다.
아! 저작권 문제가 발생할 수 있으니 공개된 웹에서 사용하실때는
잘 알아보셔서 피해가 없도록 대비하세요!

소스를 붙여넣으니 자꾸 고리에 이상한게 붙네요
초보는 글쓰기도 초보 ;;;
 
	public function get_satimg() {
		$content = file_get_contents('http://www.kma.go.kr/weather/images/satellite_basic_pop.jsp');
		//$save = file_put_contents('satellite_basic_pop.jsp', $content);
		preg_match_all( "/<img[^>]*src=[\"'](?=\/)[repositary]?([^>\"']+)[\"']?[^>]*>/i", $content, $matches );

		$img_arr = array();
		foreach ($matches[1] as $key => $img) { 
			$img_src = 'http://www.kma.go.kr'.$img;
	
			$temp_file_name = '';
			preg_match('~([\w\d-_]+)\.[\w\d]{1,4}~i', $img, $temp_file_name); // 파일이름 구하기
			$temp_file_ext = preg_replace('/^.+\.([^\.]{1,})$/','\\1', $img); // 파일 확장자 구하기
			$file_name = $temp_file_name[1].'.'.$temp_file_ext;
			$file_path = 'img/sat/';
	
			if (!is_file($file_path . $file_name)) {
				$fp = fopen($file_path.$file_name, "w");
				$img_content = file_get_contents($img_src);
				fwrite($fp, $img_content);
				fclose($fp);
			}	
			$img_arr[] = $file_path . $file_name;
		}
		return $img_arr;
	}
 다음글 모바일 여부를 체크할 수 있는 멋진 걸 발견했습니다~ (5)
 이전글 mssql to mysql 데이터 이전 (5)

댓글

darkninja / 2014/07/02 13:10:26 / 추천 0
controller 에서
$ satimg = $ this->get_satimg();
$ view_data = array( 'satimg' => $ satimg );
$ this->load->view('your_view', $ view_data);
    
view 에서 보여줄때
<div>
 < i m g  s r c = ' < ? p h p  e c h o    end($satimg);  ? > ' > < / i m g >
</div>    

한대승(불의회상) / 2014/07/02 14:05:25 / 추천 0
좋은 정보 감사 합니다. ^^
수야디벨 / 2014/07/03 09:37:51 / 추천 0
좋은정보 감사합니다 !
/ 2014/07/03 10:07:43 / 추천 0
기상청 사이트에서 이미지 파일 가져오는 소스 같이 보이네요 ^^

저작권이라 하면 어느정도 범위 내에서 쓸 수 있을가요 ?
변종원(웅파) / 2014/07/03 10:36:35 / 추천 0
닉/ 공공데이터 포털에서 데이터 가져오면 저작권 걱정 안하고 쓸 수 있습니다.
darkninja님께도 알려드렸는데 쉬운 방법으로 선택을 하셨네요. ^^
darkninja / 2014/07/03 11:45:46 / 추천 0
   <style>
    #satimg {
     margin: 2px 0 0 0;
    }
    #satimg img {
     position: absolute;
     clip: rect(4px, auto, auto, 0px);
    }
    #satimgnav {
     margin: 162px 0 0 0;
     width: 100%;
    }
   </style>
   <div id="satimg" class="bg-info">
    <i m g   s r c = '<!--?php echo end($satimg); ?-->' id="satimg_slide_show"></img>
   </div>
   <table id="satimgnav" class="bg-info">
    <tr>
     <td align="left">  <a href="[removed]chgImg(-1)">Previous</a></td>
     <td align="center"><a href="[removed]auto()">Auto/Stop</a></td>
     <td align="right"><a href="[removed]chgImg(1)">Next</a>  </td>
    </tr>
   </table>
   <!--script type="text/javascript">
    var NewImg= <?php echo json_encode($satimg ); ?>;
    var ImgNum = 0;
    var ImgLength = NewImg.length - 1;
    //Time delay between Slides in milliseconds
    var delay = 1000;
    var lock = false;
    var run;
    var satimg_slide_show = document.getElementById('satimg_slide_show');
    
    function chgImg(direction) {
     ImgNum = ImgNum + direction;
     if (ImgNum > ImgLength) {
      ImgNum = 0;
     }
     if (ImgNum < 0) {
      ImgNum = ImgLength;
     }
     satimg_slide_show.src = NewImg[ImgNum];
    }
    function auto() {
     if (lock == true) {
      lock = false;
      window.clearInterval(run);
     }
     else if (lock == false) {
      lock = true;
      run = setInterval("chgImg(1)", delay);
     }
    }
   </script-->
darkninja / 2014/07/03 11:49:35 / 추천 0
img clip rect 를 하니 마진 경계를 넘어서 document 마진 기준으로 표시되는거 같네요!
보기좋게 하려면 php 에서 작은 이미지로 변환하면서 윗부분을 제외 하여야 겠네요...