getenv(string $varname) 取得系統環境變數值。參數為 $_SERVER 陣列的鍵名,或經 putenv() 設定的自訂變數。
| 變數名 | 說明 | 範例 |
|---|---|---|
| PHP_SELF | 當前執行腳本路徑(相對 DocumentRoot) | /test.php/foo.bar |
| argv | 命令列參數陣列(CLI 模式)或 GET 參數 | Array([0] => arg1) |
| argc | 命令列參數個數 | 1 |
| GATEWAY_INTERFACE | CGI 規範版本 | CGI/1.1 |
| SERVER_NAME | 伺服器主機名稱 | example.com |
| SERVER_SOFTWARE | 伺服器識別字串 | Apache/2.4.41 |
| SERVER_PROTOCOL | 通訊協定 | HTTP/1.1 |
| REQUEST_METHOD | 請求方法 | GET, POST, PUT |
| REQUEST_TIME | 請求開始時間戳(PHP 5.1+) | 1699999999 |
| QUERY_STRING | 查詢字串(? 之後) | id=1&name=foo |
| DOCUMENT_ROOT | 文件根目錄 | /var/www/html |
| HTTP_ACCEPT | Accept 標頭 | text/html,application/xhtml+xml |
| HTTP_ACCEPT_CHARSET | Accept-Charset 標頭 | utf-8,iso-8859-1 |
| HTTP_ACCEPT_ENCODING | Accept-Encoding 標頭 | gzip, deflate |
| HTTP_ACCEPT_LANGUAGE | Accept-Language 標頭 | zh-TW,zh;q=0.9 |
| HTTP_CONNECTION | Connection 標頭 | Keep-Alive |
| HTTP_HOST | Host 標頭 | example.com |
| HTTP_REFERER | 來源頁面 URL(不可全信) | https://google.com/ |
| HTTP_USER_AGENT | 用戶代理資訊 | Mozilla/5.0... |
| HTTPS | HTTPS 連線時為非空值 | on |
| REMOTE_ADDR | 客戶端 IP | 192.168.1.1 |
| REMOTE_HOST | 客戶端主機名(需 DNS 反解) | host.example.com |
| REMOTE_PORT | 客戶端連接埠 | 54321 |
| SCRIPT_FILENAME | 當前腳本絕對路徑 | /var/www/html/index.php |
| SERVER_ADMIN | 管理員信箱(Apache 設定) | admin@example.com |
| SERVER_PORT | 伺服器埠號 | 80, 443 |
| SERVER_SIGNATURE | 伺服器版本與虛擬主機名 | Apache/2.4.41 Server at... |
| PATH_TRANSLATED | 檔案系統實際路徑 | /var/www/html/test.php |
| SCRIPT_NAME | 當前腳本路徑 | /index.php |
| REQUEST_URI | 請求 URI | /index.php?id=1 |
| PHP_AUTH_DIGEST | Digest 認證 Authorization 標頭 | Digest username=... |
| PHP_AUTH_USER | HTTP 認證用戶名 | admin |
| PHP_AUTH_PW | HTTP 認證密碼 | secret |
| AUTH_TYPE | 認證類型 | Basic |
getenv() 在 IIS ISAPI 模式下可能不支援,建議直接使用 $_SERVER 超全域陣列。PHP_SELF、argv、argc 行為不同。REMOTE_HOST 需 Apache 設定 HostnameLookups On。