PHP $_SERVER 함수 > 기술자료 | 해피정닷컴

PHP $_SERVER 함수 > 기술자료

본문 바로가기

사이트 내 전체검색

PHP $_SERVER 함수 > 기술자료

PHP PHP $_SERVER 함수

페이지 정보


본문

$_SERVER['DOCUMENT_ROOT'] == 현재 사이트가 위치한 서버상의 위치
=> /webapp/include  ,   윈도우서버인경우...  적용불가
리눅스  <?php include_once $_SERVER['DOCUMENT_ROOT']."/inc/header.php"; ?>
윈도우  <?php include_once "c:/inetpub/wwwroot/inc/header.php"; ?>

$_SERVER['HTTP_ACCEPT_ENCODING'] == 인코딩 방식
=>  gzip, deflate

$_SERVER['HTTP_ACCEPT_LANGUAGE'] == 언어
=>  ko

$_SERVER['HTTP_USER_AGENT'] == 사이트 접속한 사용자 환경(브라우저 정보)
=>  Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; Q312461; .NET CLR 1.0.3705

$_SERVER['REMOTE_ADDR'] == 사이트 접속한 사용자 IP ( 프록시 서버가 있는 경우 사설아이피가 보이기도)
=>  xxx.xxx.xxx.xxx  ,  10.x.x.x

$_SERVER['HTTP_CLIENT_IP'] == 사이트 접속한 사용자 IP
=>  xxx.xxx.xxx.xxx 

$_SERVER['SCRIPT_FILENAME'] == 실행되고 있는 위치와 파일명
=>  webapp/include/index.php

$_SERVER['SERVER_ADDR'] == 서버 아이피
=>  111.111.111.111

$_SERVER['SERVER_NAME'] == 사이트 도메인    (웹서버 버추얼 호스트에 지정한 도메인)
=>  www.happyjung.com   또는   happyjung.com

$_SERVER['HTTP_HOST'] == 사이트 도메인    (client 웹브라우저가 접속할 때 사용한 도메인)
=>  www.happyjung.com   또는   happyjung.com

$_SERVER['HTTP_REFERER']  현재 페이지로 오기 전에 페이지의 주소값을 가져올 때
[주의]
1) 주소창에 직접 주소를 입력해서 방문하는 경우 : HTTP_REFERER의 값 가져오지 못한다
2) '즐겨찾기'를 이용해서 방문(IE에서 해당)하는 경우 :  HTTP_REFERER 값 가져오지 못한다
3) 링크를 통해서 방문.(a태그) : HTTP_REFERER 값 가져온다
4) 자바스크립트 location.href를 통해 방문 : 브라우저에 따라 HTTP_REFERER 값 가져오거나, 가져오지 못한다

$_SERVER['SERVER_PORT'] == 사이트가 사용하는 포트
=>  80

$_SERVER['SERVER_SOFTWARE'] == 서버의 소프트웨어 환경
=>  Apache/1.3.23 (Unix) PHP/4.1.2 mod_fastcgi/2.2.10 mod_throttle/3.1.2 mod_ssl/2.8.6 OpenSSL/0.9.6c

$_SERVER['GATEWAY_INTERFACE'] == CGI 정보
=>  CGI/1.1

$_SERVER['SERVER_PROTOCOL'] == 사용된 서버 프로토콜
=>  HTTP/1.1

$_SERVER['REQUEST_URI'] == 현재페이지의 주소에서 도메인 제외
=>  /index.php?user=???&name=???

$_SERVER['PHP_SELF'] == 현재페이지의 주소에서 도메인과 넘겨지는 값 제외
=>  / index.php

$_SERVER['APPL_PHYSICAL_PATH'] == 현재페이지의 실제 파일 주소
=>  D:\\webapp/

$_SERVER['HTTPS'] == https 일때는 on 을 , http 일때는 값없음
=>  on



예를 들어 1234.php 파일의 위치가
서버경로 /home/happyjung/public_html/page/1234.php
웹 경로 https://www.happyjung.com/page/1234.php 문서의 다양한 위치결과확인


// 파일 이름이 들어간 절대 서버 경로
echo realpath(__FILE__);
//=>  /home/happyjung/public_html/page/1234.php


// 파일 이름
echo basename(__FILE__);
//=>  1234.php


// 파일 이름을 뺀 절대 서버 경로
echo str_replace(basename(__FILE__), "", realpath(__FILE__));
//=>  /home/happyjung/public_html/page/


// 서버의 웹 뿌리(루트) 경로(절대 경로)
echo $_SERVER['DOCUMENT_ROOT'];
//=>  /home/happyjung/public_html


// 웹 문서의 뿌리 경로를 뺀 상대 경로
echo preg_replace("`\/[^/]*\.php$`i", "/", $_SERVER['PHP_SELF']);
//=>  /page/


// PHP 파일 이름이 들어간 상대 경로
echo preg_replace("`\/[^/]*\.php$`i", "/", $_SERVER['PHP_SELF']) . basename(__FILE__);
//=>  /page/1234.php


// 바탕 base_URL
// 서버 중 일부에서 $_SERVER['HTTPS'] 는 정의되지 않은 변수이므로 오류가 발생합니다.
if(isset($_SERVER['HTTPS'])) {
    if ($_SERVER['HTTPS'] == "on") {
        $secure_connection = true;
        $base_URL = "https://";
    }
} else {
    $base_URL = "http://";
}
//$base_URL = ($_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://';
$base_URL .= ($_SERVER['SERVER_PORT'] != '80') ? $_SERVER['HTTP_HOST'] . ':' . $_SERVER['SERVER_PORT'] : $_SERVER['HTTP_HOST'];
echo $base_URL;
//=>  https://www.happyjung.com


// PHP 파일이 있는 곳의 웹 경로
// 파일의 위치가 https://www.happyjung.com/123/456.html 일때
echo $base_URL . preg_replace("`\/[^/]*\.php$`i", "/", $_SERVER['PHP_SELF']);
//=>  https://www.happyjung.com/page/


// PHP 파일이 있는 곳의 웹 경로
// 파일의 위치가 https://www.happyjung.com/123/456.html 일때
echo $base_URL . preg_replace("`\/[^/]*\.php$`i", "", $_SERVER['PHP_SELF']);
//=>  https://www.happyjung.com/page


// 문서의 전체 URL
echo $base_URL . preg_replace("`\/[^/]*\.php$`i", "/", $_SERVER['PHP_SELF']) . basename(__FILE__);
//=>  https://www.happyjung.com/page/1234.php


// 문서의 전체 URI
echo $base_URL . $_SERVER['REQUEST_URI'];
//=>  https://www.happyjung.com/page/1234.php


참고자료
http://cafe.naver.com/frame77.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=45
http://stackoverflow.com/questions/1459739/php-serverhttp-host-vs-serverserver-name-am-i-understanding-the-ma
https://pat.im/817 
http://88240.tistory.com/215
https://code.i-harness.com/ko/q/11ee38

댓글목록

등록된 댓글이 없습니다.


Total 2,640건 124 페이지
  • RSS
기술자료 목록
180
일반   16433  2006-12-13 11:34 ~ 2011-02-24 00:00  
179
JavaScript   20399  2006-12-11 22:10  
178
제로보드   18291  2006-12-11 18:22  
177
제로보드   16471  2006-11-28 11:28  
176
WindowsServer   26983  2006-11-27 23:41 ~ 2009-03-25 00:00  
175
MSSQL   21567  2006-11-23 17:07  
174
그누보드   17228  2006-11-08 21:44 ~ 2020-10-07 18:49  
173
JavaScript   23055  2006-11-08 21:33 ~ 2018-04-12 17:28  
172
etc쇼핑몰   13138  2006-11-07 23:41  
171
PHP   27695  2006-11-04 07:22 ~ 2020-10-05 12:20  
170
전자결제   14413  2006-11-02 23:46 ~ 2007-07-02 00:00  
169
PHP   24083  2006-10-28 11:21 ~ 2018-04-10 04:32  
168
ClassicASP   14039  2006-10-26 00:42 ~ 2016-08-30 00:00  
167
HTML   20582  2006-10-16 17:54 ~ 2014-09-24 00:00  
열람
PHP   21244  2006-09-30 18:43 ~ 2019-02-19 16:29  
165
일반   15340  2006-09-21 11:22  
164
WindowsServer   14561  2006-09-12 15:26 ~ 2006-09-13 00:00  
163
HTML   42501  2006-09-07 17:19  
162
JavaScript   19290  2006-08-17 14:56 ~ 2016-09-21 00:00  
161
MySQL   13124  2006-08-09 20:33  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.