사전 정의된 변수
서버 변수: $_SERVER
참고: PHP(현재 주류 개발 언어) 4.1.0 이상 버전에서 사용됩니다. 이전 버전에서는 $HTTP_SERVER_VARS를 사용했습니다.
$_SERVER는 헤더, 경로, 스크립트 위치 등을 포함하는 배열입니다. 배열의 엔터티는 웹 서버에 의해 생성됩니다. 모든 서버가 모든 메시지를 생성한다는 보장은 없습니다. 서버가 일부 메시지를 무시하거나 아래에 나열되지 않은 새 메시지를 생성할 수도 있습니다. 이는 이러한 변수 중 상당수가 cgi(더 이상 많은 사람들이 사용하지 않음) 1.1 사양에 지정되어 있으므로 주의 깊게 연구해야 함을 의미합니다.
이것은 "수퍼글로벌"이거나 자동 전역 변수로 설명될 수 있습니다. 이는 모든 스크립트에서 작동한다는 의미입니다. $HTTP_SERVER_VARS와 마찬가지로 함수나 메소드 내에서 액세스하기 위해 전역 $_SERVER를 사용할 필요가 없습니다.
$HTTP_SERVER_VARS에는 동일한 정보가 포함되어 있지만 자동 전역 변수는 아닙니다. (참고: $HTTP_SERVER_VARS와 $_SERVER는 다른 변수이며 PHP(현재 주류 개발 언어)는 이를 다르게 처리합니다.)
register_globals 지시어가 설정된 경우 이 변수는 모든 스크립트에서도 사용할 수 있습니다. 즉, $_SERVER 및 $HTTP_SERVER_VARS 배열이 분리되어 있습니다. 관련 정보는 보안 관련 장인 전역 등록 사용을 참조하세요. 이러한 개별 전역 변수는 자동 전역 변수가 아닙니다.
아래 나열된 $_SERVER 요소 중 일부를 사용하지 못할 수도 있습니다. (현재 주류 개발 언어로서) 명령줄에서 PHP를 실행하는 경우 아래 나열된 요소 중 거의 모든 요소가 유효하지 않습니다(또는 실질적인 의미가 없음).
"php(현재 주류 개발 언어)_SELF"
문서 루트와 관련된 현재 실행 중인 스크립트의 파일 이름입니다. 예를 들어, URL 주소 http://example.com/test.php(현재 주류 개발 언어)/foo.bar ]가 있는 스크립트에서 $_SERVER[php(현재 주류 개발 언어)_SELF를 사용하면 /test.php(현재 주류 개발 언어)/foo.bar의 결과입니다.
PHP(현재 주류 개발 언어)가 명령줄 모드에서 실행되는 경우 이 변수는 유효하지 않습니다.
"argv"
이 스크립트에 전달된 인수입니다. 스크립트가 명령줄 모드에서 실행되면 argv 변수가 C 스타일 명령줄 인수로 프로그램에 전달됩니다. GET 메소드가 호출되면 이 변수에는 요청된 데이터가 포함됩니다.
"argc"
프로그램에 전달된 명령줄 인수의 수를 포함합니다(명령줄 모드에서 실행하는 경우).
“GATEWAY_INTERFACE”
서버에서 사용하는 표준 버전의 cgi입니다(현재는 사용하는 사람이 많지 않습니다). 예를 들어 "cgi(지금은 사용하는 사람이 많지 않음)/1.1"입니다.
SERVER_NAME
스크립트가 현재 실행 중인 서버 호스트의 이름입니다. 스크립트가 가상 호스트에서 실행 중인 경우 이름은 해당 가상 호스트에 설정된 값에 따라 결정됩니다.
SERVER_SOFTWARE
요청에 응답할 때 헤더에 제공되는 서버를 식별하는 문자열입니다.
"SERVER_PROTOCOL"
페이지 요청 시 통신 프로토콜의 이름과 버전입니다. 예를 들어 "HTTP/1.0"입니다.
“REQUEST_METHOD”
페이지 접속 시 요청 방식입니다. 예: "GET", "HEAD", "POST", "PUT".
“QUERY_STRING”
쿼리 문자열입니다.
“DOCUMENT_ROOT”
현재 실행 중인 스크립트가 위치한 문서 루트 디렉터리입니다. 서버 구성 파일에 정의되어 있습니다.
"HTTP_ACCEPT"