首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP $_SERVER 超全局變量完整參考手冊

     編輯:PHP 相關知識

服務器與執行環境信息一站式查閱

$_SERVER 是 PHP 核心超全局數組,包含 HTTP 頭、腳本路徑、服務器配置等關鍵信息。本文整理所有常用鍵名、含義、典型值及使用場景,適合開發時快速查閱。

完整鍵值對照表

鍵名說明示例值
PHP_SELF當前執行腳本路徑(相對 Document Root)/index.php
argv命令行模式下傳遞給腳本的參數數組Array ( [0] => arg1 )
argc命令行參數個數1
GATEWAY_INTERFACECGI 規範版本CGI/1.1
SERVER_NAME服務器主機名www.example.com
SERVER_SOFTWARE服務器標識字符串Apache/2.4.41 (Ubuntu)
SERVER_PROTOCOL請求協議名稱與版本HTTP/1.1
REQUEST_METHOD請求方法GET, POST, PUT, HEAD
QUERY_STRING查詢字符串(? 後內容)id=123&page=2
DOCUMENT_ROOT腳本所在文檔根目錄/var/www/html
HTTP_ACCEPTAccept 頭內容text/html,application/xhtml+xml
HTTP_ACCEPT_CHARSETAccept-Charset 頭utf-8, iso-8859-1
HTTP_ACCEPT_ENCODINGAccept-Encoding 頭gzip, deflate, br
HTTP_ACCEPT_LANGUAGEAccept-Language 頭zh-CN,zh;q=0.9,en;q=0.8
HTTP_CONNECTIONConnection 頭keep-alive
HTTP_HOSTHost 頭(域名+端口)www.example.com:8080
HTTP_REFERER來源頁面 URL(不可靠,可偽造)https://google.com/search?q=php
HTTP_USER_AGENTUser-Agent 頭Mozilla/5.0 (Windows NT 10.0; Win64; x64)...
HTTPS是否 HTTPS 請求on (HTTPS) / off (HTTP)
REMOTE_ADDR客戶端 IP 地址192.168.1.100
REMOTE_HOST客戶端主機名(需服務器啟用反向解析)host.example.com
REMOTE_PORT客戶端連接端口54321
SCRIPT_FILENAME當前執行腳本絕對路徑/var/www/html/index.php
SERVER_ADMIN管理員郵箱(Apache 配置)admin@example.com
SERVER_PORT服務器監聽端口80, 443, 8080
SERVER_SIGNATURE服務器版本與虛擬主機名字符串Apache/2.4.41 (Ubuntu) Server at www.example.com Port 80
PATH_TRANSLATED腳本文件系統路徑(非 Document Root)/var/www/html/index.php
SCRIPT_NAME當前腳本路徑(用於自我引用)/index.php
REQUEST_URI請求 URI(含查詢字符串)/index.php?id=123&page=2
PHP_AUTH_USERHTTP 認證用戶名(Apache 模塊模式)admin
PHP_AUTH_PWHTTP 認證密碼secret
AUTH_TYPEHTTP 認證類型Basic, Digest

常見使用陷阱

  • 代理環境下 REMOTE_ADDR 不準:需檢查 HTTP_X_FORWARDED_FOR, HTTP_CLIENT_IP(見「PHP 獲取客戶端 IP」一文)。
  • HTTP_REFERER 可偽造:不可用於安全驗證,僅作統計參考。
  • DOCUMENT_ROOT 末尾無斜杠:拼接路徑時需手動補充 DIRECTORY_SEPARATOR。
  • CLI 模式下缺失 HTTP_* 鍵:命令行運行時僅有 argv/argc 等少量鍵。

最佳實踐

  1. 封裝 Request 類統一訪問,屏蔽環境差異(如 Symfony HttpFoundation, Laravel Request)。
  2. 關鍵信息(IP、UA)記錄日誌時脫敏處理,符合 GDPR/個信法規。
  3. 使用 filter_input(INPUT_SERVER, 'KEY', FILTER_SANITIZE_STRING) 防止注入風險。

建議收藏此表,開發調試時快速定位所需環境變量。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved