$_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
웹 경로 http://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;
//=> http://happyjung.com
// PHP 파일이 있는 곳의 웹 경로
// 파일의 위치가 http://happyjung.com/123/456.html 일때
echo $base_URL . preg_replace("`\/[^/]*\.php$`i", "/", $_SERVER['PHP_SELF']);
//=> http://joshi.co.kr/page/
// PHP 파일이 있는 곳의 웹 경로
// 파일의 위치가 http://joshi.co.kr/123/456.html 일때
echo $base_URL . preg_replace("`\/[^/]*\.php$`i", "", $_SERVER['PHP_SELF']);
//=> http://joshi.co.kr/page
// 문서의 전체 URL
echo $base_URL . preg_replace("`\/[^/]*\.php$`i", "/", $_SERVER['PHP_SELF']) . basename(__FILE__);
//=> http://joshi.co.kr/page/1234.php
// 문서의 전체 URI
echo $base_URL . $_SERVER['REQUEST_URI'];
//=> http://joshi.co.kr/page/1234.php