메뉴 건너뛰기

프로그램언어

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
번호 제목 날짜 조회 수
80 stripcslashes — addcslashes()로 인용한 문자열을 되돌림 2016.12.23 20458
79 quotemeta 모든 메타 문자앞에 역슬래쉬를 붙인 문자열을 반환 2016.12.23 20461
78 stripslashes — 따옴표 처리한 문자열을 풉니다 2016.12.23 20486
77 문자열 치환하기 2015.04.14 20493
76 [PHP] 한글명 파일 다운로드받기 2014.03.26 20551
75 HTTP Protocol의 data method - GET / POST 2016.04.22 20637
74 PHP 소스 : 이미지 리사이즈, 섬네일 2014.03.26 20707
73 템플릿 관련 정보 2016.08.22 20732
72 array_slice 배열의 일부를 추출 2016.12.23 20775
71 검색어 처리 루틴 2015.04.14 20778
70 preg_match (정규표현식 매치를 수행합니다) 2016.12.23 20854
69 PHP error 메시지 출력 file 2015.04.14 20924
68 PHP switch 문 file 2015.04.14 20993
67 Ajax로 구연한 실시간 서버시간출력 file 2017.03.06 21031
66 RSSReader Class 제작 및 Reader 만들기 file 2016.08.22 21042
65 FPDF - PHP로 PDF 만들기 2014.02.27 21086
64 PHP continue 문 file 2015.04.14 21097
63 체크박스, post 로 넘기고 받아서 다시 체크하기, checkbox 2017.03.07 21131
62 POST값 통째로 인코딩하기 1 2015.04.06 21175
61 DB 내용을 화면에 출력(이중 for 문) 2015.04.14 21246
Board Pagination Prev 1 ... 8 9 10 11 12 13 14 15 16 17 Next
/ 17

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved