文章

【存档】PHP中超全局变量(_SERVER)的类别及使用

🤖AI摘要
摘要生成中
本文共1833字,预计阅读时间3~6分钟
今日天气

在PHP中,$_SERVER是一个超全局变量,它包含了服务器和执行环境相关的信息,包括头信息、路径以及脚本位置等。$_SERVER中的内容主要是由Web服务器创建的(一些是受服务器自身配置影响,另一些则是接受客户端发送的信息),不同的服务器和配置可能会有所不同。这个超全局变量经常被用来获取环境变量,但实际上它包含了更广泛的信息,不仅仅是传统意义上的环境变量。
$_SERVER的一些主要用途包括:

  1. 获取请求信息:如请求的URL、HTTP方法、请求头、查询字符串等。
  2. 获取服务器信息:如服务器软件名称、服务器协议等。
  3. 获取脚本信息:如当前脚本的路径、文件名等。
  4. 访问环境变量:虽然这不是$_SERVER的主要用途,但它确实包含了一些由Web服务器设置的环境变量。

以下是一些$_SERVER中常见的数组中的元素及其含义:

$_SERVER['HTTP_HOST']:当前请求的 Host: 头部的内容。

$_SERVER['HTTP_USER_AGENT']:客户端的用户代理信息,即客户端的浏览器和操作系统信息。

$_SERVER['HTTP_ACCEPT']:客户端可接受的 MIME 类型。

$_SERVER['HTTP_ACCEPT_LANGUAGE']:客户端可接受的语言。

$_SERVER['HTTP_CONNECTION']:是否保持连接状态,如果服务器支持 keep-alive,则此值为 "Keep-Alive"。

$_SERVER['HTTP_REFERER']:引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。

$_SERVER['HTTP_COOKIE']:包含用户发送的 cookies。

$_SERVER['REQUEST_URI']:请求的 URI,即统一资源标识符,用于标识要访问的资源的字符串。

$_SERVER['REQUEST_METHOD']:请求类型,GET、POST、HEAD 等。

$_SERVER['QUERY_STRING']:查询(query)的字符串(URL 中第一个问号 ? 之后的内容)。

$_SERVER['SERVER_NAME']:服务器的主机名。

$_SERVER['SERVER_ADDR']:服务器的 IP 地址。

$_SERVER['SERVER_PORT']:服务器所使用的端口。默认是 '80'。如果使用 SSL 安全连接,则这个值为用户设置的端口值。

$_SERVER['SERVER_PROTOCOL']:请求页面时通信协议的名称和版本,例如,“HTTP/1.0”。

$_SERVER['DOCUMENT_ROOT']:当前运行脚本所在的文档根目录。在服务器配置文件中定义。

$_SERVER['SCRIPT_FILENAME']:当前执行脚本的绝对路径名。

$_SERVER['REMOTE_ADDR']:正在浏览当前页面用户的 IP 地址。

$_SERVER['REMOTE_HOST']:正在浏览当前页面用户的主机名。反向域名解析基于该用户的 REMOTE_ADDR。

$_SERVER['REMOTE_PORT']:用户连接到服务器时所使用的端口。

$_SERVER['SCRIPT_NAME']:当前执行脚本的路径。

$_SERVER['PHP_SELF']:当前正在执行脚本的文件名,与 document root 相关。

$_SERVER['GATEWAY_INTERFACE']:服务器使用的 CGI 规范的版本,例如,“CGI/1.1”。

$_SERVER['SERVER_SOFTWARE']:服务器标识的字串,在响应请求时的头信息中给出。

请注意,由于服务器设置和用户环境的不同,$_SERVER 数组中的某些元素可能无法使用或包含不同的信息。在使用这些元素时,请确保进行适当的验证和错误处理。

超全局变量可以取得服务器自身的一些参数,例如网站地址等,也可以取得访客的一些信息,诸如IP地址、浏览器及系统信息、访问页面、查询信息内容等等,可以利用这些信息对一些数据进行加密——比如用md5、SHA1等加密方式加密客户端的几个变量然后截断字符串组合成新的解密结果,再用这个加密结果去和客户端发送的原始数据再次使用相同方式加密的结果去比对。

时间变量经常会作为一个参数加入到加密序列中去,但由于客户获取页面和提交数据中间的时间差不太好确定,所以往往会给访客带来不太好的体验。

作者头像
姚先生创始人

差点成为有力量的石油工人的世界上最水的财务经理。

  • 内容版权声明:除非注明,否则皆为原创。
  • 转引注明出处:https://www.caiguanbiji.com/view-134-1.html