English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
슈퍼 글로벌 변수는 PHP에서 4.1.0 이후로 활성화되었으며, PHP 시스템에 내장된 변수로, 스크립트의 전체 범위에서 사용할 수 있습니다.
PHP는 몇 가지 предопределенные 슈퍼 글로벌 변수(superglobals)를 предопределил,这意味着它们在一个脚本的全部作用域中都可用。 함수 및 클래스에서 특별히 명시하지 않아도 사용할 수 있습니다.
PHP 슈퍼 글로벌 변수 목록:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
이 장에서는 몇 가지 일반적인 슈퍼 글로벌 변수를 설명하겠습니다. 나머지 변수는 다음 몇 장에서 설명할 것입니다.
$GLOBALS는 PHP의 슈퍼 글로벌 변수 집합으로, PHP 스크립트의 전체 범위에서 접근할 수 있습니다.
$GLOBALS는 모든 변수를 포함한 글로벌 조합 배열입니다. 변수 이름은 배열의 키입니다.
다음 예제에서는 슈퍼 글로벌 변수 $GLOBALS의 사용 방법을 설명합니다:
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x']; + $GLOBALS['y']; } addition(); echo $z; ?>테스트해 보세요 ‹/›
위 예제에서 z는 $GLOBALS 배열의 슈퍼 글로벌 변수로, 함수 외에서도 접근할 수 있습니다.
$_SERVER는 헤더(header)、경로(path) 및 스크립트 위치(script locations)와 같은 정보를 포함한 배열입니다. 이 배열의 항목은 웹 서버에서 생성됩니다. 모든 서버가 모든 항목을 제공할 수는 없습니다; 일부 항목을 무시할 수 있거나 여기에 나열되지 않은 항목을 제공할 수 있습니다.
다음 예제에서는 $_SERVER에서의 요소 사용 방법을 보여줍니다:
<?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_REFERER']; echo "<br>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo $_SERVER['SCRIPT_NAME']; ?>테스트해 보세요 ‹/›
아래 표는 모든 $_SERVER 변수 중요 요소를 나열합니다:
요소/코드 | 설명 |
---|---|
$_SERVER['PHP_SELF'] | 현재 실행 스크립트의 파일 이름, document root와 관련 있습니다. 예를 들어, 주소가 http://example.com/test.php/foo.bar 스크립트에서 $_SERVER['PHP_SELF']을 사용하면 /test.php/foo.bar.__FILE__ 상수는 현재(예를 들어 포함된) 파일의 전체 경로와 파일 이름을 포함합니다. PHP에서 4.3.0 버전부터, PHP가 명령행 모드로 실행되면, 이 변수는 스크립트 이름을 포함합니다. 이전 버전에서는 이 변수가 사용되지 않습니다. |
$_SERVER['GATEWAY_INTERFACE'] | 서버가 사용하는 CGI 표준 버전; 예를 들어, "CGI/1.1". |
$_SERVER['SERVER_ADDR'] | 현재 스크립트가 실행되는 서버의 IP 주소. |
$_SERVER['SERVER_NAME'] | 현재 스크립트가 실행되는 서버의 호스트 이름. 스크립트가 가상 서버에서 실행되면, 이 이름은 해당 가상 서버가 설정한 값에 의해 결정됩니다. (예: ko.oldtoolbag.com) |
$_SERVER['SERVER_SOFTWARE'] | 서버 식별 문자열, 요청에 응답할 때 헤더 정보에서 제공됩니다. (예: Apache/2.2.24) |
$_SERVER['SERVER_PROTOCOL'] | 페이지 요청할 때 사용된 통신 프로토콜의 이름과 버전. 예를 들어, "HTTP/1.0". |
$_SERVER['REQUEST_METHOD'] | 페이지 요청할 때 사용된 요청 메서드; 예를 들어, "GET", "HEAD", "POST", "PUT". |
$_SERVER['REQUEST_TIME'] | PHP에서 시작된 요청 시간 타임스탬프. 5.1.0에서 사용 가능. (예:1377687496) |
$_SERVER['QUERY_STRING'] | query string(쿼리 문자열)이 있으면, 그을 통해 페이지 접근. |
$_SERVER['HTTP_ACCEPT'] | 현재 요청 헤더에서 Accept: 항목의 내용이 있으면. |
$_SERVER['HTTP_ACCEPT_CHARSET'] | 현재 요청 헤더에서 Accept-Charset: 항목의 내용이 있으면. 예를 들어: "iso-8859-1,*,utf-8". |
$_SERVER['HTTP_HOST'] | 현재 요청 헤더에서 Host: 항목의 내용이 있으면. |
$_SERVER['HTTP_REFERER'] | 사용자代理가 현재 페이지의 이전 페이지로 이동하는 주소를 안내합니다(만약 존재하면). user agent가 설정하는 것이며, 모든 user agent가 이 항목을 설정하지 않으며, 일부는 HTTP_REFERER를 수정할 수 있는 기능을 제공합니다. 간단히 말해서, 이 값은 신뢰할 수 없습니다.) |
$_SERVER['HTTPS'] | 스크립트가 HTTPS 프로토콜로 접근될 때, 비어지지 않은 값으로 설정됩니다. |
$_SERVER['REMOTE_ADDR'] | 현재 페이지를 볼 사용자의 IP 주소입니다. |
$_SERVER['REMOTE_HOST'] | 현재 페이지를 볼 사용자의 호스트 이름입니다. DNS 역방향 해석은 사용자의 REMOTE_ADDR에 의존하지 않습니다. |
$_SERVER['REMOTE_PORT'] | 사용자의 컴퓨터에서 웹 서버에 연결할 때 사용하는 포트 번호입니다. |
$_SERVER['SCRIPT_FILENAME'] | 스크립트가 실행되는 절대 경로입니다. |
$_SERVER['SERVER_ADMIN'] | 이 값은 Apache 서버 구성 파일의 SERVER_ADMIN 파라미터를 지정합니다. 스크립트가 가상 호스트에서 실행될 때, 이 값은 해당 가상 호스트의 값입니다. (예: [email protected]) |
$_SERVER['SERVER_PORT'] | 웹 서버가 사용하는 포트. 기본 값은 "80". SSL 보안 연결을 사용할 경우, 이 값은 사용자가 설정한 HTTP 포트 번호입니다. |
$_SERVER['SERVER_SIGNATURE'] | 서버 버전과 가상 호스트 이름을 포함한 문자열입니다. |
$_SERVER['PATH_TRANSLATED'] | 현재 스크립트가 위치한 파일 시스템(문서 루트 디렉토리가 아님)의 기본 경로입니다. 이는 서버가 가상 경로를 실제 경로로 映상시킨 결과입니다. |
$_SERVER['SCRIPT_NAME'] | 현재 스크립트의 경로를 포함합니다. 페이지가 자신을 지정할 때 매우 유용합니다. __FILE__ 상수는 현재 스크립트(예: 포함 파일)의 전체 경로와 파일 이름을 포함합니다. |
$_SERVER['SCRIPT_URI'] | URI는 접근할 페이지를 지정하는 데 사용됩니다. 예를 들어 "/index.html". |
PHP $_REQUEST는 HTML 양식 제출 데이터를 수집하는 데 사용됩니다.
다음 예제는 입력 필드(input) 및 제출 버튼(submit)을 포함한 폼(form)을 보여줍니다. 사용자가 "Submit" 버튼을 클릭하여 폼 데이터를 제출할 때, 폼 데이터는 <form> 태그의 action 속성에 지정된 스크립트 파일로 전송됩니다. 이 예제에서는 파일을 지정하여 폼 데이터를 처리합니다. 다른 PHP 파일을 데이터를 처리하도록 하고 싶다면, 지정된 스크립트 파일 이름을 수정할 수 있습니다. 그런 다음, 우리는 HTML 양식에서 input 필드 데이터를 수집하기 위해 슈퍼 글로벌 변수 $_REQUEST를 사용할 수 있습니다:
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];;"> 이름: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>테스트해 보세요 ‹/›
PHP $_POST는 HTML form 태그의 "method="post" 속성을 지정하여 폼 데이터를 수집하는 데 널리 사용됩니다.
다음 예제는 입력 필드(input) 및 제출 버튼(submit)을 포함한 폼(form)을 보여줍니다. 사용자가 "Submit" 버튼을 클릭하여 폼 데이터를 제출할 때, 폼 데이터는 <form> 태그의 action 속성에 지정된 스크립트 파일로 전송됩니다. 이 예제에서는 파일을 지정하여 폼 데이터를 처리합니다. 다른 PHP 파일을 데이터를 처리하도록 하고 싶다면, 지정된 스크립트 파일 이름을 수정할 수 있습니다. 그런 다음, 우리는 입력 필드(input) 데이터를 수집하기 위해 전역 변수 $_POST를 사용할 수 있습니다:
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];;"> 이름: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>테스트해 보세요 ‹/›
PHP $_GET는 HTML form 태그의 "method="get" 속성을 지정하여 폼 데이터를 수집하는 데 널리 사용됩니다.
$_GET는 URL에 전송된 데이터를 수집할 수도 있습니다.
hyperlink을 포함한 HTML 페이지가 있습니다:
<html> <body> <a href="test_get.php?subject=PHP&web=oldtoolbag.com">Test $GET</a> </body> </html>
사용자가 "Test $GET" 링크를 클릭할 때, "subject"과 "web"는 "test_get.php"에 전송되며, "test_get.php" 파일에서 $_GET 변수를 사용하여 이 데이터를 가져올 수 있습니다.
다음 예제는 "test_get.php" 파일의 코드를 보여줍니다:
<html> <body> <?php echo "Study" . $_GET['subject'] . " @ " . $_GET['web']; ?> </body> </html>테스트해 보세요 ‹/›
안내: $_POST와 $_GET에 대해 더 많은 지식을 배우고 싶다면, 우리의 PHP 양식 장