【问题标题】:PHP $_SERVER variablesPHP $_SERVER 变量
【发布时间】:2011-03-07 06:47:29
【问题描述】:

我注意到当我在$_SERVER superglobal 上执行 var_dump 时,这里的 php 手册中没有包含一些值:http://www.php.net/manual/en/reserved.variables.server.php 例如,该页面没有提到 HTTP_X_FORWARDED_FOR。在我的转储中,我还有 PATH、PATHEXT 等变量。

我是不是在错误的页面上,我在哪里可以阅读有关所有 $_SERVER 变量的信息?谢谢。

【问题讨论】:

  • 其他的依赖于配置/主机/操作系统/访问者。例如,X_FORWARDED_FOR 一般用于代理使用。
  • 在哪里可以了解更多关于这些变量的信息?您的网络服务器,例如Apache,文档将为您提供帮助。

标签: php


【解决方案1】:

关于$_SERVER

创建此数组中的条目 由网络服务器。没有 保证每个网络服务器都会 提供其中任何一项; 服务器可以省略 一些,或提供其他未列出的 这里。也就是说,大量 这些变量在 CGI/1.1 规范,所以你 应该可以期待这些。

有关 CGI/1.1 的详细信息(如引用中所述应考虑这些变量)是 here。这没有考虑(如另一个答案中提到的)操作系统变量,如PATH,等等。

【讨论】:

    【解决方案2】:

    另外:$_SERVER 还包含 HTTP 协议变量、一般的请求标头,例如由网络设备 [如代理、网关等]、用户代理 [浏览器等] 等添加的...因为您可以创建您的自己的自定义协议头以及[以“X-”前缀开头的那些],可能性是无限的。当然,$_SERVER 还包含某些特定于服务器的变量,这些变量可以基于服务器进行更改。

    如果你稍微了解一下HTTP协议,相信你会更清楚。

    【讨论】:

    • +1 @Shelhi; 可以填充大量环境(服务器和客户端)生成的值。请求之间的不一致是(我发现)不幸的,因为有时可以捕获有价值的数据。
    【解决方案3】:

    不,这些不是简单地列在手册中,而是可用的。

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 2011-10-22
      • 2011-07-11
      • 2011-03-13
      • 2014-02-10
      • 1970-01-01
      • 2018-02-23
      • 2015-08-25
      • 2015-04-26
      相关资源
      最近更新 更多