## 하늘소 - Since 1989

임시 사이드바


회원메뉴 하늘소위키 강의메뉴
하늘소 - 꿈, 희망, 끈기, 노력 처음으로
 
하늘소
|
게시판
|
자료실
|
회원전용
기타 사이트
|
위키(구)
|
스프링노트
|
싸이클럽
|
하늘소실험실
 
방학동안 홈페이지가 운영되지 않을수도 있으니 http://hanulso.cyworld.com 가입부탁드립니다.



회원가입 | 아이디찾기
신입부원을 모집합니다.
열정패기를 지닌 당신을 기다립니다.
회의
매주 월요일 오후 6시 30분
세미나
매주 월요일 회의이후
회장
19기 임진혁
부회장
22기 석재호
서기
19기 박지수
강순주
Real-Time System Lab
전자전기컴퓨터학부 동아리연합

more  공지사항
· [02.10] 2월 부터 변경되는 회의 및 세미나 시간 관련 [19기]...
· [01.18] 10년 하늘소 MT관련입니다. [3][19기]...
· [12.06] [공지]2009년 총회 일정 11일 늦은 7시입니다. [19기]...
· [11.05] [공지]09년 총회 !! 하늘소회원 필독 [2][19기]...
· [11.03] [공지]총회 안건 추천 받습니다. [6][19기]...
· [09.24] 책 구매 추천해주세요~! [8][19기]...
· [08.27] FTP서버 윈도우 파일 공유 접속시 주의사항 [19기]...
more  팁과정보
· [09.22] 홈페이지 이미지 자동 리사이즈 김준호
오늘 희백이형이 홈페이지에 사진사이즈로 인한 깨짐 문제에 대한 문제점을 제기해 주셔서 수정해 보기로 하였습니다.
일단 희백이형 홈페이지 게시판을 보니 이미지 자동 리사이즈가 되고 있더군요.
여러가지 실험(?)을 통해 소스 분석을 해 보니
자바스크립트
<script>
function resize_pic()
{
if (document.pic_resize != null)
{
var i = 0;
var resize_width = 682;
var manyPics = document.pic_resize.length;

if (manyPics > 0)
{
for (i=0; i < manyPics; i++)
{
if (document.pic_resize[i].width > resize_width)
document.pic_resize[i].width = resize_width;
}
}
else
{
if (document.pic_resize.width > resize_width)
document.pic_resize.width = resize_width;
}
}
}
</script>
를 사용하고 있음을 볼 수 있었습니다.
그리고 <img src=...>테그가 자동으로 <img name=pic_resize style="cursor:hand" onclick=window.open(this.src) src=...> 변경됨을 볼 수 있었습니다.
희백이형 홈페이지는 ASP기반이지만 하늘소 홈페이지는 PHP기반이므로 PHP방식으로 설명하겠습니다.
일단 순서는 다음과 같습니다.

1. 내용에 이미지 테그가 보이면 자바스크립트에 적용시킬 수 있도록 테그를 수정
2. 자바스크립트를 이용해 이미지 사이즈를 줄임

좀 더 자세히 설명하자면
내용 테그중 "<img" 가 발견되면 "<img name=pic_resize style="cursor:hand" onclick=window.open(this.src)"로 수정
name=pic_resize
를 지정하면 이미지를 자바스크립트에서 제어가 가능해 지구요
이 부분이 가장 중요합니다.
pic_resize 가 싫다면 바꿔주시고 자바스크립트 안의 pic_resize 부분도 똑같이 바꿔주시면 됩니다.

style="cursor:hand"
는 이미지 위에 커서를 가져가면 커서 모양은 hand로 바꿔줍니다.
링크 거는 테그인 a 테그에서만 커서모양이 손으로 바뀌기 때문에 그림위에서 커서모양을 바꾸려면 스타일을 지정해 주어야 합니다.
하지만 익스플로러 계열에서만 됩니다.

onclick=window.open(this.src)"
은 그림을 클릭하면 새 창에 그림을 띄우는 기능을 합니다.

php에서 위처럼 문자열을 치환해 주려면
str_replace 함수를 사용해 줍니다.

$contents = str_replace( "<img", "<img name=pic_resize style=\"cursor:hand\" onclick=window.open(this.src)", $contents );
위처럼 사용해 주면 $contents 안의 내용중 img 테그 부분을 두번째 인자값의 형식으로 바꿔 줍니다.
하지만 대소문자 구별을 하기 때문에
"<IMG"처럼 대분자가 들어가면 바꾸어 주지 못합니다. 큰 문제는 없지만 대소문자 구별없이 바꾸어 주려면 아래와 같이 해 주시면 됩니다.

$contents = eregi_replace( "<img", "<img name=pic_resize style=\"cursor:hand\" onclick=window.open(this.src)", $contents );

다음으로 자바스크립트를 이용하여 이미지의 사이즈를 줄여줍니다.

<script>
function resize_pic()
{
if (document.pic_resize != null)
{
var i = 0;
var resize_width = 682;
var manyPics = document.pic_resize.length;

if (manyPics > 0)
{
for (i=0; i < manyPics; i++)
{
if (document.pic_resize[i].width > resize_width)
document.pic_resize[i].width = resize_width;
}
}
else
{
if (document.pic_resize.width > resize_width)
document.pic_resize.width = resize_width;
}
}
}
</script>
스크립트를 적당한(?) 부분에 삽입시켜 줍니다.
그림의 width가 resize_width 에 지정된 값보다 크면 resize_width 값으로 바꾸어 주는 기능을 합니다.
그리고 나서 body 에 onLoad부분을 추가해 줍니다.
ex) <body onload='resize_pic();'>

☞ 마무리 요약
PHP 의 문자열 치환함수를 이용하여 img 테그 수정
$contents = eregi_replace( "<img", "<img name=pic_resize style=\"cursor:hand\" onclick=window.open(this.src)", $contents );

자바 스크립트 추가 및 body onload추가

<script>
function resize_pic()
{
if (document.pic_resize != null)
{
var i = 0;
var resize_width = 682;
var manyPics = document.pic_resize.length;

if (manyPics > 0)
{
for (i=0; i < manyPics; i++)
{
if (document.pic_resize[i].width > resize_width)
document.pic_resize[i].width = resize_width;
}
}
else
{
if (document.pic_resize.width > resize_width)
document.pic_resize.width = resize_width;
}
}
}
</script>

<body onload='resize_pic();'>
· [02.22] 안철수 교수님의 인터뷰 류니
· [02.18] 주목해야할 차세대 플랫폼 대응전략 세미나 김준호
· [02.18] 윈도우 임베디드 세미나 김준호
· [12.04] Screencast-o-matic 화면촬영 사이트 [1]김준호
· [11.26] USB를 CD로 사용할때 참고 하세요 김준호
more  오손도손
· [02.18] 요즘 다들 잘 계시는지? - 싱가포르에서 [2]김준호
· [02.16] 정보- [1][19기]...
· [02.08] 정보--<2010년 대학정보보호동아리 지원사업 참여 안... 왕찡위
· [01.27] 이거 게시판 버근가 ㅠ.ㅠ 수정한번 했더니 비번이 틀려... [2]102
· [01.27] 이거보니 옛날 생각이~ 102
· [01.21] G1 devphone 에서 전화가 된다는듯? [1]김준호
· [12.12] 동아리 이사 D-2 [6]김현동
more  OB오손도손
· [02.19] 백만년만에 들어왔습니당... ㅋ [3]BSPFP...
· [01.27] 초리 2세 탄생!!.ㅋㅋ [5]초리
· [01.26] 간간히 OB 모였으면 좋겠네요 ㅎㅎ [2]류니
· [12.06] 하늘소 OB 모임 경과 보고 [1]류니
· [12.06] 주말에 그냥 주절주절 [2]류니
· [12.06] 11기 김현웅 결혼 김준호
· [11.28] 지식채널 [2]류니
more  회의록
· [02.16] 10년 02월 16일 장지훈
· [11.16] 11월 16일 [4]한승욱
· [05.23] 09년 5월 23일 [19기]...
· [05.09] 09년 5월 9일 [19기]...
· [03.16] 09년 3월 14일 회의록 [19기]...
· [12.22] 2008년 총회 dongg...
· [11.24] 11월 24일 회의록 dongg...
more  세미나 자료실
· [09.01] 8월 31일 세미나 - 시리얼 통신 한승욱
· [08.03] 8월3일 세미나 [1]진혁
· [07.30] 7월 27일 세미나 web2.0 [1]김현동
· [07.27] 7월 27일 세미나 - Motor And Control... 한승욱
· [03.31] 3월28일.낸드플래시-세미나 임진혁
· [03.26] 3월 21일 세미나 PID제어 [2]한승욱
· [03.10] 09.03.07 - 네이트온 움직이는 대화명 [2]๑•ิܫ•...
more  질문과 답변
· [02.11] 영상 처리 프로그램 작업 도우미 요청 [2]LABE연...
· [02.09] 비주얼 C++ 개발 아르바이트생 모집 아이마루정...
· [11.03] KT 협력사 KT CNS입니다. 간단한 접수 WEB D... 한승욱
· [09.09] 아래 글 답변에 감사드립니다. [1]정택근
· [09.08] 도움이 필요한 사람이 있어서 [2]정택근
· [06.19] 문의드립니다. 답답해서 글 올려요 [1]정신건강양...
· [03.05] 이것좀 플어주세요ㅠ_ ㅠ [1]ㅊㄴㄱ
more  자료실
· [07.27] 이야기, IMPLAY, 하늘 프로그램 [2]초리
· [01.18] 테스트 김소희
· [01.08] C프로그래밍에 관한 질문들 모아논것이 있네요.. [1]Thinh...
· [08.08] 8 월 8일 세미나 [1]류니
· [07.03] VMWare Server Free Edition [1]BSPFP...
· [11.03] 시크작품관련 : 판넬 양식입니다. 차정현
· [07.12] 경령이가 만든 미로 [5]차정현
more  갤러리

대구 광역시 북구 산격동 경북대학교 공대 5호관 332호 하늘소 (702-701) 연락처:950-6986
HANULSO all rights reserved.