메뉴 건너뛰기

프로그램언어

2019.02.25 18:10

PHP $_SERVER 함수

조회 수 1558 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

$_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


List of Articles
번호 제목 날짜 조회 수
120 다중파일 업로드 + 이미지 미리보기 (Javascript, jQuery ) file 2020.12.15 915
119 단어필터링 2019.01.08 1251
118 대소문자 바꾸기 (strtoupper, strtolower) 2016.12.23 19658
117 도메인 앞에 자동으로 WWW를 붙이는 방법 2017.03.07 18904
116 두 날짜 사이의 차이 구하기 2017.03.07 18866
115 디렉토리 안의 파일의 내용들을 읽는 예 2016.12.23 19012
114 디렉토리내 특정 확장자를 가진 파일 전부 삭제 file 2015.04.14 25515
113 디렉토리의 제어 2019.01.08 1222
112 디비내용을 엑셀 파일로 다운로드 시키는 방법 2019.01.08 1393
111 로그인페이지에서 온 경우/로그인한 페이지로 이동 2016.12.23 18847
110 로또 숫자 랜덤하게 1~45까지 숫자 빼오기 2014.02.27 25438
109 리다이렉션(페이지 이동)의 3가지 방법, location.href 2017.03.07 40401
108 리스트 페이징 2014.02.27 19386
107 링크를 걸때 http 처리방법 2016.12.23 19019
106 마우스 오버시 사진변환, 파일에러시 대체이미지 적용(소스일부) 2018.07.24 4584
105 멀티 파일다운로드 꽁수로 구현하기 2020.06.19 439
104 메모장소스 2019.01.08 2000
103 메일주소의 골뱅이를 그림처리하기 2017.03.06 15508
102 몫과 나머지 구하기 2017.03.07 18471
101 무조건 알아야 할 PHP 속도 테스트 14 가지 2014.02.27 30280
Board Pagination Prev 1 ... 7 8 9 10 11 12 13 14 15 16 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved