이전 글에서는 슈퍼 전역 변수가 무엇인지, $GLOBALS가 무엇인지 알아보았습니다. 필요하신 분은 "편집자가 PHP 변수의 $GLOBALS를 알려드립니다"를 읽어보세요. 이번에 소개하는 $_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']; ?>
결과는
/try/demo_source/demo_global_server.php www.runoob.com www.runoob.com https://www.runoob.com/try/showphp.php?filename=demo_global_server Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 /try/demo_source/demo_global_server.php
먼저 결과를 대략적으로 살펴보면 모두 동일한 주소인 것 같습니다. 그러면 이 배열이 정보를 저장하는 배열이라는 것을 과감하게 추측해 보겠습니다.
$_SERVER는 헤더 정보(header), 경로(path), 스크립트 위치(scriptlocations) 및 기타 정보를 포함하는 배열입니다. 이 배열의 항목은 웹 서버에 의해 생성됩니다. 모든 서버가 모든 항목을 제공한다는 보장은 없습니다. 서버는 일부 항목을 무시하거나 여기에 나열되지 않은 항목을 제공할 수 있습니다.
모든 $_SERVER 변수의 중요한 요소에 대해 이야기해 보겠습니다.
$_SERVER['PHP_SELF'], 문서 루트와 관련된 현재 실행 중인 스크립트의 파일 이름입니다. 예를 들어, http://example.com/test.php/foo.bar
의 스크립트에서 $_SERVER['PHP_SELF']
를 사용하면 가 됩니다. /test.php/foo.bar
. __FILE__ 상수에는 현재(즉, 포함하는) 파일의 전체 경로와 파일 이름이 포함됩니다. PHP 버전 4.3.0부터 PHP가 명령줄 모드에서 실행 중인 경우 이 변수에는 스크립트 이름이 포함됩니다. 이 변수는 이전 버전에서는 사용할 수 없습니다. 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'],当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。
$_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
设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER
的功能。简言之,该值并不可信。)
$_SERVER['HTTPS'],如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。
$_SERVER['REMOTE_ADDR'],浏览当前页面的用户的 IP 地址。
$_SERVER['REMOTE_HOST'],浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR
。
$_SERVER['REMOTE_PORT'],用户机器上连接到 Web 服务器所使用的端口号。
$_SERVER['SCRIPT_FILENAME'],当前执行脚本的绝对路径。
$_SERVER['SERVER_ADMIN'],该值指明了 Apache
服务器配置文件中的 SERVER_ADMIN
参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。
$_SERVER['SERVER_PORT'],Web 服务器使用的端口。默认值为 "80"。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。
$_SERVER['SERVER_SIGNATURE'],包含了服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED'],当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。
$_SERVER['SCRIPT_NAME'],包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__
CGI/1.1
") 🎜🎜🎜$_SERVER['SERVER_ADDR'], 스크립트가 현재 실행 중인 서버의 IP 주소입니다. 🎜🎜🎜$_SERVER['SERVER_NAME'], 스크립트가 현재 실행 중인 서버의 호스트 이름입니다. 스크립트가 가상 호스트에서 실행 중인 경우 이름은 해당 가상 호스트에 설정된 값에 따라 결정됩니다. 🎜🎜🎜$_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']는 사용자 에이전트를 현재 페이지의 이전 페이지 주소(존재하는 경우)로 연결합니다. 사용자 에이전트
설정에 따라 결정됩니다. 모든 사용자 에이전트가 이 항목을 설정하는 것은 아니며 일부는 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
매개변수를 지정합니다. 스크립트가 가상 호스트에서 실행 중인 경우 이 값은 해당 가상 호스트의 값입니다. 🎜🎜🎜$_SERVER['SERVER_PORT'], 웹 서버에서 사용하는 포트입니다. 기본값은 "80"입니다. SSL 보안 연결을 사용하는 경우 이 값은 사용자가 설정한 HTTP 포트입니다. 🎜🎜🎜$_SERVER['SERVER_SIGNATURE'], 서버 버전과 가상 호스트 이름이 포함된 문자열입니다. 🎜🎜🎜$_SERVER['PATH_TRANSLATED']: 현재 스크립트가 있는 파일 시스템(문서 루트 디렉터리 아님)의 기본 경로입니다. 이는 서버를 가상 경로에서 실제 경로로 이미지화한 후의 결과입니다. 🎜🎜🎜$_SERVER['SCRIPT_NAME']에는 현재 스크립트의 경로가 포함되어 있습니다. 이는 페이지가 자신을 가리켜야 할 때 유용합니다. __FILE__
상수에는 현재 스크립트(예: 포함 파일)의 전체 경로와 파일 이름이 포함됩니다. 🎜$_SERVER['SCRIPT_URI'], URI는 액세스할 페이지를 지정하는 데 사용됩니다. 예를 들어 "/index.html
"입니다.
그게 다입니다. 더 알고 싶다면 여기를 클릭하세요. → →php 비디오 튜토리얼
위 내용은 $_SERVER 게임 방법을 가르쳐주세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!