| 제목 | 기상청 위성사진을 뛰워 봅시다! | ||
|---|---|---|---|
| 글쓴이 | darkninja | 작성시각 | 2014/07/02 13:09:06 |
|
|
|||
|
여름입니다. 기상정보가 많이 필요할때입니다. 아! 저작권 문제가 발생할 수 있으니 공개된 웹에서 사용하실때는 잘 알아보셔서 피해가 없도록 대비하세요! 소스를 붙여넣으니 자꾸 고리에 이상한게 붙네요 초보는 글쓰기도 초보 ;;;
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
|
|
한대승(불의회상)
/
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 에서 작은 이미지로 변환하면서 윗부분을 제외 하여야 겠네요... |
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>