메뉴 건너뛰기

프로그램언어

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
번호 제목 날짜 조회 수
240 parse_ini_file — Parse a configuration file 2016.12.23 19774
239 MYSQL 업데이트 두 번 하기 2014.02.27 19729
238 문자열 나누기 2015.04.14 19681
237 이미지 워터마크 구현 2014.03.26 19677
236 대소문자 바꾸기 (strtoupper, strtolower) 2016.12.23 19658
235 glob 현재 디렉토리에서 pattern에 일치하는 경로 이름을 배열로 반환 2016.12.23 19637
234 Drag/Drop HTML elements 2014.03.26 19535
233 엔터의 표현 2014.02.27 19535
232 jQuery 개발자를 위한 메모 - 레퍼런스 2014.03.26 19522
231 ini_get - php.ini에 지정되어 있는 지시어의 값을 읽어온다 2016.12.23 19520
230 PHP, $_SERVER 변수 2017.04.13 19505
229 PHP 세션에서 시작, 변수등록, 변수삭제, 부수기 2014.03.26 19490
228 네이버 지도 api php버전 2014.03.26 19434
227 headers_sent 헤더 전송 여부를 확인 2016.12.23 19409
226 리스트 페이징 2014.02.27 19386
225 다중 도메인에 따른 접속방법 2017.03.06 19370
224 문자열 붙이기 2015.04.14 19353
223 파일업로드 2017.02.19 19352
222 jQuery 개발자를 위한 메모 - 플러그 인 2014.03.26 19258
221 세션 시작 / 세션 데이터 추가 / 세션 데이터 삭제 / 세션 종료하기 2017.03.07 19102
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 17 Next
/ 17

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved