묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
PHP파일확장명에 대해서 의문한가지..
2004.05.07 20:06
httpd.conf 파일같은데서 mime설정으로 확장명을 설정하긴 하지만요..
외람된 질문이오나 초보의 의문이라고 생각해주시길.. -_-;;
보통 PHP확장명이.. .php .php3 .html .htm .phtml .inc 이런거 잖아요?
근데 꼭 .php 말고 다른것도 쓰는 이유나 목적같은게 있나요?
.inc 같은 함수파일 같은건 일반 php문서와 구별하기 위해 저런 확장명을 쓴다는것쯤은 이해하겠는데요..
.php .php3 처럼 별도로 구분하는 용도가 있는지요?
php버전에 따라 확장명의 차이나 혹은 php구분 (<? ~ ?> 또는 <?php ~ ?> 나 <?php3 ~ ?>)상에
차이가 발생하는것인지요?
만약 그렇지 않다면
php문서의 시작과 끝을 그냥 간편하게 <? ~ ?> 로 하고 모든 php문서의 확장명을 .php 로만 써도
어떤PHP버전이나 서버OS에 지장없는것인가요?
황당한 질문같아서 죄송합니다.;;
외람된 질문이오나 초보의 의문이라고 생각해주시길.. -_-;;
보통 PHP확장명이.. .php .php3 .html .htm .phtml .inc 이런거 잖아요?
근데 꼭 .php 말고 다른것도 쓰는 이유나 목적같은게 있나요?
.inc 같은 함수파일 같은건 일반 php문서와 구별하기 위해 저런 확장명을 쓴다는것쯤은 이해하겠는데요..
.php .php3 처럼 별도로 구분하는 용도가 있는지요?
php버전에 따라 확장명의 차이나 혹은 php구분 (<? ~ ?> 또는 <?php ~ ?> 나 <?php3 ~ ?>)상에
차이가 발생하는것인지요?
만약 그렇지 않다면
php문서의 시작과 끝을 그냥 간편하게 <? ~ ?> 로 하고 모든 php문서의 확장명을 .php 로만 써도
어떤PHP버전이나 서버OS에 지장없는것인가요?
황당한 질문같아서 죄송합니다.;;
댓글 4
-
써니루루☆
2004.05.08 04:21
-
샐리
2004.05.08 11:00
그럼 httpd.conf 파일에서 마임설정에
.php .php3 .html .htm .phtml .inc 이렇게 되어있는부분을
.php .inc 이렇게 두개만 설정해놓으면
이 확장자를 가진 파일만 PHP가 파싱하게 되는것인지요?
그렇다면 .html 파일안에 <?php ~ ?> 부분이 있어도
이것을 해석하지 않고 바로 브라우저로 내보내버리는것이 되는것이겠군요..
(맞는 말인지.. -_-;;)
그리고 하나만 더 확인사살을.. -_-;;
php파일에 include나 require문으로 위의 html파일(내부에php코드가 존재하는 html)을 삽입했을 경우는 어찌되는가요? -
플로렐라
2004.05.08 17:17
샐리//인클루드는 그 파일의 코드를 읽어(실행이 아니라)서 삽입하는것이기 때문에
확장자랑은 상관없습니다. -
써니루루☆
2004.05.08 18:48
include와 require 둘다 PHP가 파싱되는 방식 그대로 파싱됩니다.
대신 두가지가 약간 다르게 작동하죠.
코드를 숨기는 목적이라면 .asp를 쓰면 이 서버가 nt인지 unix계열인지 첫눈에 알수 없게 되는 효과를 볼 수 있죠. 어차피 foot printing을 통해서 확인할 수는 있지만 말이죠.
또 html 확장자로 해두고 get으로 값을 넘기지 않는다면 이 페이지가 스크립트언어로 되어 있는지 아닌지를 알 수 없습니다.
그냥 확장명을 내 맘대로 하고 싶다고 하는 경우는 그냥 폼인 경우가 많죠. 또는 템플릿이나 라이브러리 등을 .tpl 이나 .inc로 하시는 경우도 많죠. 이게 웹상에서 보여지면 문제가 있기 때문에 php로 연결을 하죠.
개인적으로 이런것들 전부 싫어하는 바입니다. 기본적으로 오직 .php 확장자만을 php에 등록하고 html 확장자는 오직 html로서의 기능만 하면 되도록 서버를 세팅합니다.
이유는 html을 php에 연결시켰을 경우 아무리 php parser가 초고속 으로 parsing하더라도 파서를 통과한건 결국 메모리를 사용했다는 것이죠. 또 쓴데없는 확장자를 사용하다보면 확장자의 컨트롤이 문제가 되는 경우가 만죠. 예를 들어서 업로드 같은 경우에서 확장자를 제어하기가 상당히 어려워 집니다.
그리고 PHP의 시작과 끝을 알리는 <? 나 <?php 의 차이는 약간 있습니다. php.ini에서 short tag 기능을 켰냐 안켰냐에 따라 틀리겠죠.
하지만 PHP의 기본은 <?php 입니다. 개인의 서버에서만 작업을 하고 사용하려면 모르겠지만 범용으로 제작하여 배포가 되고 공유가 되는 소스, 프로젝트 단위로 작업되는 세그먼트 코드들에는 반드시 범용적인 기본코드 <?php를 사용해야 하겠네요.
또 최신의 함수만을 고집해서는 범용으로 갈 수 없습니다. 최대한 적정선을 유지하고 너무 고전적인 함수에 치우쳐도 안되며, 적당한 선을 유지하기 위해 자신만의 함수를 만들고 이전에는 지원 안했는데 현재 지원하는 함수가 있을 경우 user function과 등록된 함수인지 검사하는 루틴을 통해 함수 재정의로 버젼의 호환성을 높이는 접근성 향상에 노력할 수 있도록 코딩을 해야 겠습니다.
말이 주저리 주저리 많았네요 -_-;;