1
ChoateYao 2019-02-25 17:20:34 +08:00
$_SERVER 跟 HTTP 请求没有直接关系,跟上层的 Nginx、PHP-FPM、PHP-CLI 之类的有直接关系
|
2
joyme 2019-02-25 17:39:05 +08:00
以 nginx+php-fpm 为例,是 nginx 通过 fastcgi 协议,将 http 请求的一些信息传递给 php-fpm,然后 php-fpm 将信息存在$_SERVER 中。
|
3
jevonszmx 2019-02-27 17:48:07 +08:00
官网说明很详细的: http://php.net/manual/zh/reserved.variables.server.php (赞一下 php 官方手册,真的好)
比如这个数组怎来的: ``` $_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。 ``` 比如可能有哪些字段: ``` 不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。这也就意味着大量的此类变量都会在» CGI 1.1 规范中说明,所以应该仔细研究一下。 在 $_SERVER 中,你也许能够,也许不能够找到下面的这些元素。 ``` 比如提示你,命令行需要注意: ``` 注意,如果以命令行方式运行 PHP,下面列出的元素几乎没有有效的(或是没有任何实际意义的)。 ``` |