웹마스터 팁
page_full_width">
[씽크식 PHP] 노프레임에서 "역"으로 인클루드 쓰기.
2002.02.24 13:03
제가 지금까지 봐왔던 노프레임에서의 인쿨르드 방식은.
컨텐츠가 있는 페이지에서 헤더/푸터를 불러오는 것이었습니다.
물론 좋은 방식입니다만..
상대경로로 네뷰게이션의 링크를 만들었을경우
상대 경로 타겟이 틀려서 헤더/푸터를 경로 마다 다른 파일로 만들어 주거나..
일일히 절대경로(htp://~~/abc.html)로 해주거나..-_-
인클루드하기전에 변수를 정의해서 하던지 해야하는데요.
제가 쓰는 역 인쿨르드 방식은, 저러한 단점들을 고칠뿐만 아니라.. 굉장히 쉽습니다.
예를 들어 보며 설명하겠습니다. (저는 include();보다 require();를 많이 씁니당.)
- index.html (내용이 들어있는게 아니라, 헤드+푸트입니다.)
<!--HEAD-->
<HTML>
<HEAD>
<TITLE>sample source</TITLE>
</HEAD>
<BODY>
<TABLE><TR><TD>
<!--Contents-->
<?php
//Contents
require($contents.".cont");
?>
<!--Foot-->
</TD></TR></TABLE>
</BODY></HTML>
--------------------------------------
컨텐츠를 담아놓을 파일들의 공통된 확장자를 정합니다.
.html이던 .php던 .john-_- 이던 상관 없습니다.
리퀘어 당하는 쪽의 파일은 확장자가 어떻든 모든 출력되버립니다.
여기서는 content에서 따서 .cont로 했습니다.
자..저렇게 하면ㅡ 이제 내용을 출력하기 위해선 어떻게 해야할까요?
우선 인덱스 파일을 만들어야겠죠?
엥? 근데, index는 저놈이 미리 선수 쳤습니다;
상관 없습니다. 어처피 한몸입니다. ".cont"라느 이름으로 파일하나 만들고 내용쓰면, 그게 바로 인덱스가 됩니다.
왠 확장자 하나만 달랑 썼냐구요?
변수가 정의가 안되면 문자열의 경우 ""(공백)이 디폴트로 들어가고..
정수 등의 숫자의 경우엔 0(zero)이 디폴트로 들어가기 때문이죠.
자, 어쨌든.. 그렇게 인덱스 파일을 만듭시다.
다 만들어서 저장은 하긴 했는데.. 어떻게 불러오냐..
그냥 저놈(index.html)을 불러오기만 하면됩니다.
어떤가요? 헤드 + 내용(.cont) + 푸트가 쫙 나오죠?
이제 인덱스 외의 내용을 채워봅시다.
아까와 같은 방법이긴 하나, .cont 앞에 이름을 붙여주세요.
1.conf 2.conf처럼 해도 상관 없고.. john.cont 이렇게 해도 상관 없습니다.
이제 그걸 어떻게 불러오느냐..
index.html?content=아까붙인 이름
이렇게 불러오면 된답니다. 아차, 뒤의 확장자를 넣으면..
예를들자면, content=haha.cont 로 불러오면.. 실제 로드되는 내용은
haha.cont.cont가 되니 명심하세요, 확장자는 빼는겁니다.
..음 이걸 팁이라고 올리다니 저도 참 할일 없나봅니다-_-
그럼..
컨텐츠가 있는 페이지에서 헤더/푸터를 불러오는 것이었습니다.
물론 좋은 방식입니다만..
상대경로로 네뷰게이션의 링크를 만들었을경우
상대 경로 타겟이 틀려서 헤더/푸터를 경로 마다 다른 파일로 만들어 주거나..
일일히 절대경로(htp://~~/abc.html)로 해주거나..-_-
인클루드하기전에 변수를 정의해서 하던지 해야하는데요.
제가 쓰는 역 인쿨르드 방식은, 저러한 단점들을 고칠뿐만 아니라.. 굉장히 쉽습니다.
예를 들어 보며 설명하겠습니다. (저는 include();보다 require();를 많이 씁니당.)
- index.html (내용이 들어있는게 아니라, 헤드+푸트입니다.)
<!--HEAD-->
<HTML>
<HEAD>
<TITLE>sample source</TITLE>
</HEAD>
<BODY>
<TABLE><TR><TD>
<!--Contents-->
<?php
//Contents
require($contents.".cont");
?>
<!--Foot-->
</TD></TR></TABLE>
</BODY></HTML>
--------------------------------------
컨텐츠를 담아놓을 파일들의 공통된 확장자를 정합니다.
.html이던 .php던 .john-_- 이던 상관 없습니다.
리퀘어 당하는 쪽의 파일은 확장자가 어떻든 모든 출력되버립니다.
여기서는 content에서 따서 .cont로 했습니다.
자..저렇게 하면ㅡ 이제 내용을 출력하기 위해선 어떻게 해야할까요?
우선 인덱스 파일을 만들어야겠죠?
엥? 근데, index는 저놈이 미리 선수 쳤습니다;
상관 없습니다. 어처피 한몸입니다. ".cont"라느 이름으로 파일하나 만들고 내용쓰면, 그게 바로 인덱스가 됩니다.
왠 확장자 하나만 달랑 썼냐구요?
변수가 정의가 안되면 문자열의 경우 ""(공백)이 디폴트로 들어가고..
정수 등의 숫자의 경우엔 0(zero)이 디폴트로 들어가기 때문이죠.
자, 어쨌든.. 그렇게 인덱스 파일을 만듭시다.
다 만들어서 저장은 하긴 했는데.. 어떻게 불러오냐..
그냥 저놈(index.html)을 불러오기만 하면됩니다.
어떤가요? 헤드 + 내용(.cont) + 푸트가 쫙 나오죠?
이제 인덱스 외의 내용을 채워봅시다.
아까와 같은 방법이긴 하나, .cont 앞에 이름을 붙여주세요.
1.conf 2.conf처럼 해도 상관 없고.. john.cont 이렇게 해도 상관 없습니다.
이제 그걸 어떻게 불러오느냐..
index.html?content=아까붙인 이름
이렇게 불러오면 된답니다. 아차, 뒤의 확장자를 넣으면..
예를들자면, content=haha.cont 로 불러오면.. 실제 로드되는 내용은
haha.cont.cont가 되니 명심하세요, 확장자는 빼는겁니다.
..음 이걸 팁이라고 올리다니 저도 참 할일 없나봅니다-_-
그럼..
댓글 14
-
John Sync.
2002.02.24 22:09
-
octahedron
2002.02.24 19:03
질문 include 쓰면 안되나요? -
별이
2002.03.06 09:53
저는 이거찾아 삼만리였습니당...;; -
노진희
2002.03.26 12:38
php 허접인데요 require($menu.".htm") <= 이렇게 하고선 ?menu=okatoz <= 요렇게 하니깐
밑에 에러 뜨네요 왜 그런지 알쿄주세요오
Fatal error: Failed opening required 'okatoz.htm' (include_path='.') in c:serverapm_setuphtdocsindex.php on line 13 -
블루바
2002.05.16 12:13
저는 잘 되던데..
혹시 두 파일의 위치가 달라서 그런가 확인해 보세요..
index.php파일과 okatoz.htm파일은 같은 디렉토리 내에 있어야 합니다.. -
블루바
2002.05.16 12:15
다른 디렉토리에 잇는 파일을 불러 오려면..
예를 들어.. inc 디렉토리에 들어 있다고 하면..
?menu=inc/okatoz <-- 이렇게 하시면 되겠죠.. -
진재용
2002.09.29 14:59
PHP 저얼라게 못하는 넘이 이거 해볼려고 절라게 노력해서 반시간만에 -_-;; 무슨 말인지 이해했네요.
index.html 을 하나 만든다.
index.html 안에
<!--HEAD-->
<HTML>
<HEAD>
<TITLE>sample source</TITLE>
</HEAD>
<BODY>
<TABLE><TR><TD>
<!--Contents-->
<?php
//Contents
require($menu.".php");
?>
<!--Foot-->
</TD></TR></TABLE>
</BODY></HTML>
넣는다.
xxx.php 파일을 하나 만든다.
그 안에 "어쩌구저쩌구" 암꺼나 적거
http://홈페이지/index.html?menu=xxx
하면은 출력됨. -
면식자
2002.11.05 21:20
윽 ㅡㅡ; 초보라서 모르겠당.....
그냥 무식(평범?) 하게 인클루드 써야쥐 ㅡ.ㅡ -
조병천
2003.01.15 22:07
저 얼마전에 이거써서 했는데..정말 괜찮네요.. -
플룩☆。
2003.02.25 17:25
뒤늦게 질문을 올려서 죄송합니다.
알려주신대로 해서 정말 손쉽게 할수가 있었는데요,
제로보드를 사용할경우에는 사용할 방법이 없나요?
그러니까 최근게시물에서 게시판으로 넘어갈경우,
아니면 글보기나 글쓰기를 할경우..모든경우에서라도
헤더와 풋이들어갈수있게 말이죠..
알려주신방법대로 한다면 절대경로를 넣어야 하는거자나요..
그럼 게시판에는 사용할수없는건지...
제가 초보라 잘몰라서 그러는데 아시면 답변좀...^^
그리구 이렇게 좋은 팁알려주셔서 감사합니다..^^ -
임상민
2003.02.25 06:10
쩝......저는 php 왕초보라..그런지.....
ㅎㅎㅎ... ".cont"라는 녀석의 의미가 뭔질 몰라서 계속 헤멨습니다.....
".htm" 이런 식으로도 파일명이 지정될 수 있다는 걸 오늘에서야... 그것도 삽질 끝에 알았습니다....
컴도 왕초보군.................ㅡ_ㅡ;
어쩐지.....계속 인덱스가 에러나더니만....
씽크님..감사합니다...이런 기초적인 팁조차...저 같은 왕초보에겐 귀중한 양식이랍니다.... -
孔子曰™
2003.07.20 18:05
:) 감동먹고 저도 시도해봅니다 -
제로보드
2005.01.16 14:28
Warning: main(cg.htmfoot.htm): failed to open stream: No such file or directory in d:apm_setuphtdocsmyhomeindex.php on line 8
Warning: main(cg.htmfoot.htm): failed to open stream: No such file or directory in d:apm_setuphtdocsmyhomeindex.php on line 8
Fatal error: main(): Failed opening required 'cg.htmfoot.htm' (include_path='.') in d:apm_setuphtdocsmyhomeindex.php on line 8
이렇게 뜨네요
require($p."cg.htm") 이렇게 햇는데....
글구 또 index.php?p=cg 이렇게 햇는데 그런데 위 오류가 -
제로보드
2005.01.16 14:31
내용 추가 +
index.php 이렇게 소스를 썻거든요.
<?php
//Contents
require($contents.".php");
?>
<?php
//Contents
require($contents.".php");
?>
require();이 속도면에서 더 빠르다고 알고 있습니다..
include는 while같은 반복문 안에서 쓰일 수 있고..