아주 쉬운 것부터...
<img src="banner.php" height=30 width=90>
와 같은 HTML소스를 본적이 있을 것이다.
.gif 나 .jpg 이미지가 아닌 php 스크립트파일을 소스로 지정했다.
아니, 이런일이...
어떻게 이미지가 출력될 수 있는 것인가?
불행히도 문제는 너무나 간단하다.
순서를 간단히 나타내본다.
1. 이미지파일을 연다.
2. 헤더를 출력하여 브라우저에게 앞으로 전송될 문자열은 이미지 형식이라고 알린다.
3. 이미지 파일의 내용을 출력한다.
4. 끝.
우리는 이미지 파일을 여는 법과
헤더의 형식,
출력하는 방법만 알면 된다.
### 1단계 ###
파일을 열고 내용을 가져오는 방법은 다음과 같다.
1. fopen() 를 이용해 열고자 하는 이미지 파일의 포인터값을 가져온다.
2. fread() 에 포인터를 지정해 내용을 문자열 변수로 가져온다.
예를 들어본다.
(파일 내용 가져오기)
$file_pointer = fopen("/banner.gif", "r");
$var_gif = fread($file_pointer, 10000);
fread() 에 정의된 10000은 10000바이트 읽어들이라는 뜻이다.
파일의 끝(eof; end of file)을 만나면 10000바이트가 되지 않아도 읽어들이기를 중단한다.
### 2단계 ###
헤더는 header() 를 이용해 전달한다.
웹프로그래밍에 대해서는 정말 편리하게 만들어진게 PHP 이다...
Header ("Content-type: image/gif");
뭔뜻인지 알것이다. 이후의 content 형태는 gif 파일 형식이라는 소리다.
만약 이미지 파일이 jpg라면?
### 3단계 ###
파일 내용을 뿌려주면 된다. 뭘로??? echo()를 이용한다.
echo ($var_gif);
또는
echo $var_gif;
이렇게 gif 이미지를 PHP를 통해 출력하게 된다.
여러 모양의 배너가 있을 때, 각각의 파일명을 특별히 지정하지 않아도
<img src="banner.php?type=A" width=90 height=30>
<img src="banner.php?type=B" width=90 height=30>
이런식으로 취향에 맞는 배너를 출력하도록 할 수 있을 것이다.
길가다 주워들은 header() 를 시험해보려다가 이미지 출력하는 방법으로 응용하게 되었다. 이보다 더 간단하고 좋은 루틴이 있다면 알려주기 바란다.
오늘은 여기까지 한다.
(다시 말하지만 Full 소스는 제공하지 않는다.)
* :맥노턴님에 의해서 게시물 이동되었습니다 (2002-07-29 12:22)
* :맥노턴님에 의해서 게시물 이동되었습니다 (2005-07-27 17:46)