PHP $_SERVER 变量是一个数组,其中包含服务器和执行环境信息,例如标头、路径和脚本位置。该数组中的条目由 Web 服务器创建。无法保证每个网络服务器都会提供其中任何一个。服务器可能会省略一些,或提供此处未列出的其他键。
键 | 描述 |
---|---|
'PHP_SELF' | 当前执行脚本的文件名,相对于文档根目录。例如,地址 http://example.com/foo/bar.php 的脚本中的 $_SERVER['PHP_SELF'] 将为 /foo/bar.php。 __FILE__ 常量包含当前(即包含的)文件的完整路径和文件名。如果 PHP 作为命令行处理器运行,则此变量包含脚本名称。 |
'argv' | 传递给脚本的参数数组。当脚本在命令行上运行时,这提供了对命令行参数的 C 风格访问。当通过 GET 方法调用时,它将包含查询字符串。 |
'argc' | 包含传递给脚本的命令行参数的数量 (如果在命令行上运行)。 |
'GATEWAY_INTERFACE' | 服务器正在使用的 CGI 规范的哪个版本;例如'CGI/1.1'。 |
'SERVER_ADDR' | 当前脚本执行所在服务器的IP地址。 |
'SERVER_NAME' | 当前脚本正在其下执行的服务器主机的名称。如果脚本在虚拟主机上运行,则这将是为该虚拟主机定义的值。 注意:在 Apache 2 下,您必须设置 UseCanonicalName = On 和 ServerName。否则,该值反映客户端提供的主机名,该主机名可能被欺骗。在与安全相关的上下文中依赖此值是不安全的。 |
'SERVER_SOFTWARE' | 服务器标识字符串,在响应时在标头中给出 |
'SERVER_PROTOCOL' | 请求页面的信息协议的名称和版本;例如'HTTP/1.0'; |
'REQUEST_METHOD' | 访问页面使用了哪种请求方法;例如'GET', 'HEAD', 'POST', 'PUT'。 注意: PHP 脚本在发送 header 后终止(这意味着在没有输出缓冲的情况下生成任何输出后),如果请求方法为 HEAD。 |
'REQUEST_TIME' | 请求开始的时间戳。 |
'REQUEST_TIME_FLOAT' | 请求开始的时间戳,精度为微秒。 |
'QUERY_STRING' | 查询访问页面所通过的字符串(如果有)。 |
'DOCUMENT_ROOT' | 当前脚本在其下执行的文档根目录(如定义)在服务器的配置文件中。 |
'HTTP_ACCEPT' | 当前请求的 Accept: 标头的内容(如果有)。 |
'HTTP_ACCEPT_CHARSET' | 当前请求的 Accept-Charset: 标头的内容(如果有)。示例:'iso-8859-1,*,utf-8'。 |
'HTTP_ACCEPT_ENCODING' | Accept-Encoding: 标头的内容当前请求(如果有)。示例:'gzip'。 |
'HTTP_ACCEPT_LANGUAGE' | Accept-Language 的内容:当前请求中的标头(如果有)。示例:'en'。 |
'HTTP_CONNECTION' | 连接内容:当前请求的标头(如果有)。示例:'Keep-Alive'。 |
'HTTP_HOST' | 主机内容:当前请求的标头(如果有)。 |
'HTTP_REFERER' | 将用户代理引用到当前页面的页面地址(如果有)。这是由用户代理设置的。并非所有用户代理都会设置此项,有些用户代理提供了修改 HTTP_REFERER 的功能。简而言之,它确实不可信。 |
'HTTP_USER_AGENT' | 用户代理的内容:来自当前请求的标头(如果有) 。这是一个字符串,表示正在访问该页面的用户代理。典型的例子是:Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)。除此之外,该值可以与 get_browser() 一起使用,以根据用户代理的功能定制页面的输出. |
'HTTPS' | 如果通过 HTTPS 协议查询脚本,则设置为非空值。 |
'REMOTE_ADDR' | 用户查看当前页面的 IP 地址。 |
'REMOTE_HOST' | 用户查看当前页面的主机名。反向 DNS 查找基于用户的 REMOTE_ADDR。 注意:您的 Web 服务器必须配置为创建此变量。例如,在 Apache 中,您需要 httpd.conf 中的 HostnameLookups On 才能存在。另请参阅 gethostbyaddr()。 |
'REMOTE_PORT' | 用户计算机上用于与 Web 服务器通信的端口。 |
'REMOTE_USER' | 经过身份验证的用户。 |
'REDIRECT_REMOTE_USER' | 经过身份验证的用户(如果请求是内部重定向的)。 |
'SCRIPT_FILENAME' | 当前执行脚本的绝对路径名。 注意:如果使用 CLI 执行脚本,则为相对路径,例如 file.php 或 ../file .php, $_SERVER['SCRIPT_FILENAME'] 将包含用户指定的相对路径。 |
'SERVER_ADMIN' | 赋予 SERVER_ADMIN 的值(对于 Apache)Web 服务器配置文件中的指令。如果脚本在虚拟主机上运行,则这将是为该虚拟主机定义的值。 |
'SERVER_PORT' | 服务器上的端口Web 服务器使用计算机进行通信。对于默认设置,这将为"80";例如,使用 SSL 会将其更改为您定义的安全 HTTP 端口。 注意:在 Apache 2 下,您必须设置 UseCanonicalName = On,以及 UseCanonicalPhysicalPort = On为了获取物理(真实)端口,否则,该值可能会被欺骗,并且可能会也可能不会返回物理端口值。在与安全相关的上下文中依赖此值是不安全的。 |
'SERVER_SIGNATURE' | 包含服务器版本和虚拟主机名的字符串添加到服务器生成的页面(如果启用)。 |
'PATH_TRANSLATED' | 基于文件系统(不是文档根)的当前脚本路径,之后服务器已完成任何虚拟到真实的映射。 注意:Apache 2 用户可以在 httpd.conf 中使用 AcceptPathInfo = On 来定义 PATH_INFO。 |
'SCRIPT_NAME' | 包含当前脚本的路径。这对于需要指向自身的页面很有用。 __FILE__ 常量包含当前(即包含的)文件的完整路径和文件名。 |
'REQUEST_URI' | 给出的 URI访问此页面;例如,"/index.html"。 |
'PHP_AUTH_DIGEST' | 在进行摘要式 HTTP 身份验证时,此变量设置为发送的"Authorization"标头由客户端(应用于进行适当的验证)。 |
'PHP_AUTH_USER' | 进行 HTTP 身份验证时,此变量设置为用户名由用户提供。 |
'PHP_AUTH_PW' | 进行 HTTP 身份验证时,此变量设置为用户提供的密码。 |
'AUTH_TYPE' | 进行 HTTP 身份验证时,此变量设置为身份验证类型。 |
'PATH_INFO' | 包含任何客户端提供的路径名信息,该信息位于实际脚本文件名后面但位于查询字符串之前(如果有)。例如,如果当前脚本是通过 URL http://www.example.com/php/path_info.php/some/stuff?foo=bar 访问的,则 $_SERVER['PATH_INFO' ] 将包含 /some/stuff。 |
'ORIG_PATH_INFO' | PHP 处理之前的'PATH_INFO'原始版本。 |
示例:$_SERVER 示例
下面的示例演示了上述概念。
<?php
echo $_SERVER['SERVER_NAME'];
?>
上述代码的输出将类似于:
www.yxjc123.com