홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송
include와 require ?
12년 전
요즘은 노프레임으로 구성된 홈페이지가 많이 있습니다.
노프레임이란....프레임이 없다는거죠......

암튼...이런 노프레임 홈페이지를 만드려면.....
예를들어 위에 메뉴부분은 모든 페이지마다 다 넣어줘야 하겠죠...
똑같은 소스를 계속해서 넣어줘야 합니다.......

그런데 그러다가 메뉴하나를 수정할 일이 생기면 -_-?
메뉴가 들어간 모든 페이지를 다 수정해 줍니다..........;;;

하지만.......-_,- PHP를 사용하신다면 그런 수고를 덜수가 있죠;;

자 그럼 이번엔 다른얘기......
어떤 함수를 만들었습니다.....그리고 많은 페이지에서 그 함수를 사용합니다.
그래서 그 모든 페이지에 그 함수 소스를 다 집어 넣었습니다...
그러다가 함수내용을 수정할일이 생기면 -_-?
함수가 들어간 모든 페이지를 다 수정해 줍니다....... '_';;

하지만.......-_,-


위 두경우를 위해 include와 require라는게 있습니다.
둘다 모두 포함한다는 뜻을 가지고 있습니다...

일단 include에 대해 알아 볼까요~

include는 말그대로 다른 문서를 현재 문서에 포함시켜 주는것입니다.
예제를 보시죠....

>>> a.php
<?echo"P";?>

>>> b.php
<?echo"H";?>

이렇게 두개의 문서가 있습니다.
a.php 에서는 실행하면 P를 찍어 주겠죠..?
p.php 에서는 H를 찍습니다.

그런데 우리는 이 두문서를 이용해서 PHP를 찍어 볼까 합니다...
-_-?오또케?

c.php라는 문서를 만들어 보죠.......아래와 같이...

<?
include"a.php";
include"b.php";
include"a.php";
?>

실행을 해보면 PHP가 찍힐겁니다....
자......살펴 볼까요..?
include라는것은 include된 문서의 소스를 현재의 문서로 가져옵니다.
그러니까 우리가 만든 c.php의 소스는 아래와 같이 되어버리는거죠..

<?
echo"P";
echo"H";
echo"P";
?>

그렇죠? include"a.php";에서 a.php의 소스를 가져오기때문에 P를 찍고..
include"b.php";에서는 b.php의 소스를 가져와서..H를 찍습니다.

include의 간단한 예제를 하나 더 볼까요...
보통 라이브러리파일 이라고 해서 사용되는 함수들을 한개의 파일에 모아놓고 함수가 사용되는 문서에서 include해서 함수를 사용합니다.

>>> lib.php
<?
function TEST() { .... }
?>

위와 같이 lib.php에서 TEST()라는 함수가 선언되었죠...
그럼 test.php에 이렇게 해보죠..

>>> test.php
<?
include"lib.php";
TEST();
?>

lib.php를 include했기때문에 lib.php의 모든 함수를 사용할수 있게 되었습니다.
그래서 TEST()함수를 호출할수 있는 것이죠...
함수 이외에도 변수도 include하여 사용이 가능하다죠;;;

자 그럼.....더 재미난걸 해볼까요?...

>>>top.php
<table border=1>
<tr><td>

>>>bottom.php
</td></tr>
</table>

위 두소스를 볼까요...
top.php에서는 table의 시작입니다...<table>태그가 들어가고...
<tr>로 행을 만들고 <td>로 셀에 내용을 집어 넣을 준비가 된거죠..
그리고 끝입니다.

bottom.php3에서는 </td>로 셀을 닫고 </tr>로 행을 끝낸다음 </table>로 table을 끝냅니다.

이 두소스를 include하는 문서를 만들어 볼까요..

>>> middle.php
<?
include"top.php";
echo"PHP";
include"bottom.php";
?>

자....볼까요.......
먼저 top.php를 불러와서 테이블을 시작합니다....
그리고 그 테이블 속에 PHP라는 문자를 찍어준다음에...
bottom.php로 테이블을 끝내는것이죠....

쉽죠?-_-

노프레임 문서는 이런형태로 만들어 집니다...
예를 들면 한 문서의 소스에서 메뉴부분만 쏙 뺍니다....
그리고 그 소스를 다른 문서로 만든다음에...
메뉴가 들어가는 부분에 include해주면 끝입니다.
사실 프레임보다 훨씬 편한방법입니다...-_,-

뭐 꼭 노프레임이 아니더라도 배너 같은곳에 쓰시면 편하겠죠...
배너부분만 include해놓으면 나중에 수정하기 편할겁니다.

그런데 주의 할점은 다른경로의 문서를 include할때 입니다.
include는 상대 경로를 써서 해주는게 좋으며....
이미지 태그나 링크등을 주의 해야 하는데..... 예제를 보실까요?~

>>> http://DOMAIN/main/top.php
<img src=image/top.gif>

위 문서는 절대 경로가 http://DOMAIN/main/top.php 입니다.
그리고 문서 내용에 img태그에서는 상대 경로로 image/top.gif 라는 이미지를 띄우는거죠.....그러니까 image라는 폴더에 있는 이미지 입니다.

그럼 이걸 include할 문서를 보죠;;

>>> http://DOMAIN/index.php
<?include"main/top.php";?>

상대경로로 include했습니다. 이 index.php라는 문서는 경로상으로 root에 위치하고 include될 top.php라는 문서는 main이라는 서브디렉토리에 위치하는 거죠...
그래서 상대경로로 main/top.php라 주었습니다.
그런데 문제는 이렇게 하면 이미지가 안뜬다는거죠......-_-;엇

include가 되면 일단 가져온 소스는 현재 문서로 맞춰집니다.
그래서 <img src=image/top.gif> 라는 소스가 index.php의 소스로 간주 되기 때문에 결국 http://DOMAIN/image 라는 폴더에서 top.gif라는 이미지를 찾는 다는 얘기 입니다. @_@결국 경로가 꼬여 버리는거죠;;

해결 방법은 되도록 같은 경로에서 include하거나....
include될 문서의 모든 태그에서는 절대 경로를 사용합니다.
(이미지 또는 링크...등 주소가 들어가는 모든 태그)

수정된 소스를 보죠;;

>>> http://DOMAIN/main/top.php
<img src=http://DOMAIN/main/image/top.gif>

이렇게 해주면 되겠죠?^^

자 그럼 대충 include에 대해서 감을 잡으셨으리라 생각 됩니다.
그럼 require는 뭔가요?-_-?

require도 include와 같이....다른 파일을 불러와줍니다...
그런데 둘은 다르다지요;;;

가장 큰 차이점은...include는 조건문이나 반복문에서 사용할수 있습니다.
예를 들면...

if(~~~) {include"....";}

위와 같이 if의 조건이 참이면 include하라...라는게 된다는거죠;;;
그러나 require는 조건이 참이든 거짓이든 무조건 가져옵니다. -_-; 무식한넘;;
for문이나 while문에서도 마찬가지 이고요..

그리고 include는 한 문서에서 여러번 사용이 가능 합니다.
그러니까 같은 파일을 여러번 불러 올수가 있다는건데....
require는 한번밖에 불러올수가 없습니다....

-_-이렇게 보니 require가 무지 후져 보이네요;;;
그런데...한가지 require가 좋은점은...
include보다 속도가 빠르다네요;;;^^;

그러니까 위에서 얘기했던 함수라이브러리 파일같은 경우는 어짜피 한번만 불러오면 되는것이니까 속도가 빠른 require를 사용하시는게 좋겠죠~?

(그런데 처음에는 include를 사용하시다가 작업이 완료된후 require를 사용하시는게 좋습니다.
include에서는 에러메세지가 include된 파일을 중심으로 표시되기때문에 그 위치를 찾기 쉽지만 require는 불러들여진 상태로 에러메세지가 표시되기 때문에 에러메세지가 가르키는 위치를 찾기 힘들기 때문입니다)
추천추천 : 306 추천 목록
번호 제목
3,035
 아이프레임(iframe) 비율 유지하면서 크기 조절하는 방법
3,034
 PHP 배열에서 무작위로 하나 뽑아주는 array rand() 함수
3,033
 PHP 정규식 정리
3,032
 PHP 정규식을 활용한 태그 및 특정 문자열 제거 및 추출 방법
3,031
 php 크롤링 또는 파싱 함수, 정규식 모음
3,030
 제이쿼리 기본 명령어
3,029
 웹페이지 가로 모드세로 모드 인식하기
3,028
 모바일 웹 화면 강제 회전(가로모드 고정)
3,027
 [HTML5]에서 frameset 대체 방법과 iframe 속성
3,026
 HTML <Audio> 사용법
3,025
 윈도우10 시스템파일 손상 (초간단 오류 복구방법!!)
3,024
 PHP 파일 존재 여부 파악하기(로컬 파일 존재 및 원격지 파일 존재)
3,023
 [CSS] 박스 세로 가운데 중앙 정렬 6가지
3,022
 CSS Layout 수평 & 수직 정렬
3,021
 여러 도메인들 간 쿠키 공유하기
3,020
 태그 사이에 있는 텍스트를 추출
3,019
 [JQuery] textbox focus on off일때 숫자 콤마 보여주기
3,018
 쿠키 생성,가져오기,삭제
3,017
 사용자 함수 모음
3,016
 마우스,키보드 제한 ( 오른쪽클릭,드래그,영역선택등..)
3,015
 [HTML5] <video> - DOM으로 제어하기
3,014
 HTML5 video 태그에서 영상 좌우반전
3,013
 PHP - 특정 태그 및 문자열 추출, 제거
3,012
 [PHP] define과 defined의 차이
3,011
 우클릭 완벽차단 스크립트
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.