PHP $_SERVER超全局變量詳解

參考資料:https://www.php.net/manual/zh/reserved.variables.server.phpphp

 

$_SERVER 是一個包含了諸如頭信息(header)、路徑(path)、以及腳本位置(script locations)等等信息的數組。這個數組中的項目由 Web 服務器建立。不能保證每一個服務器都提供所有項目;服務器可能會忽略一些,或者提供一些沒有在這裏列舉出來的項目。數組

 

  1. $_SERVER['GATEWAY_INTERFACE']—— 服務器使用的 CGI 規範的版本;例如,「CGI/1.1」。
  2. $_SERVER['SERVER_ADDR']—— 當前運行腳本所在的服務器的 IP 地址。
  3. $_SERVER['SERVER_NAME'] ——當前運行腳本所在的服務器的主機名。若是腳本運行於虛擬主機中,該名稱是由那個虛擬主機所設置的值決定。$_SERVER['SERVER_SOFTWARE'] 
    • Note: 在 Apache 2 裏,必須設置 UseCanonicalName = On 和 ServerName。 不然該值會由客戶端提供,就有可能被僞造。 上下文有安全性要求的環境裏,不該該依賴此值。
  4. $-SERVER['SERVER_SOFTWARE']——服務器標識字符串,在響應請求時的頭信息中給出。
  5. $_SERVER['SERVER_PROTOCOL']——請求頁面時通訊協議的名字和版本。例如,'HTTP/1.0'
  6. $_SERVER['REQUEST_METHOD']—— 訪問頁面使用的請求方法。例如,'POST','GET'$_SERVER['']
    • Note:若是請求方法爲 HEAD,PHP 腳本將在發送 Header 頭信息以後終止(這意味着在產生任何輸出後,再也不有輸出緩衝)。
  7. $_SERVER['REQUEST_TIME']——請求開始的時間戳,從 PHP 5.1.0 起可用。
  8. $_SERVER['REQUEST_TIME_FLOAT']——請求開始餓時間戳,微秒級別的精準度。自 PHP 5.4.0 開始生效。
  9. $_SERVER['QUERY_STRING']——query_string(查詢字符串)若是有的話,經過它進行頁面訪問。
  10. $_SERVER['DOCUMENT_ROOT']——當前運行腳本所在的文檔目錄根目錄。在服務器配置文件中定義。
  11. $_SERVER['HTTP_ACCEPT']——當前請求頭中Accept:項的內容,若是存在的話。
  12. $_SERVER['HTTP_ACCEPT_CHARSET']——當前請求頭中Accept-Charset:項中的內容,若是 有的話。例如,"iso-8859-1,*,utf-8".
  13. $_SERVER['HTTP_ACCEPT_ENCODING']——當前請求頭中Accept-Encoding:項中的內容,若是有的話。例如,"gzip"。
  14. $_SERVER['HTTP_ACCEPT_LANGUAGE']——當前請求頭中Accept-Language:項中的內容,若是有的話。例如,"en"
  15. $_SERVER['HTTP_CONNECTION']——當前請求頭中Connection:項中的內容,若是存在的話。例如,"Keep-Alive"
  16. $_SERVER['HHTP_HOST']——當前請求頭中Host:項中的內容,若是存在的話。
  17. $_SERVER['HTTP_REFERER']——引導用戶代理到當前頁的前一頁的地址(若是存在)。由 user agent 設置決定。並非全部的用戶代理都會設置該項,有的還提供了修改 HTTP_REFERER 的功能。簡言之,該值並不可信。
  18. $_SERVER['HTTP_USER_AGENT']——當前請求頭中User-Agent:項中的內容,若是存在的話。該字符串代表了訪問該頁面的用戶代理的信息。一個典型的例子是:Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)。除此以外,你能夠經過 get_browser() 來使用該值,從而定製頁面輸出以便適應用戶代理的性能。 
  19. $_SERVER['HTTPS']——若是腳本是經過HTTPS訪問的,則被設爲一個非空的值。
    • Note: 注意當使用 IIS 上的 ISAPI 方式時,若是不是經過 HTTPS 協議被訪問,這個值將爲 off。
  20. $_SERVER['REMOTE_ADDR']——瀏覽當前頁面的用戶的IP地址。
  21. $_SERVER['REMOTE_HOST']——瀏覽當前頁面的用戶的主機名。DNS反向解析不依賴於用戶的REMOTE_ADDR
    • Note: 你的服務器必須被配置以便產生這個變量。例如在 Apache 中,你須要在 httpd.conf 中設置 HostnameLookups On 來產生它。
  22. $_SERVER['REMOTE_PORT']——用戶機器上連到Web服務器所使用的端口。
  23. $_SERVER['REMOTE_USER']——經驗證的用戶
  24. $_SERVER['REDIRECT_REMOTE_USER']——驗證的用戶,若是請求已在內部重定向。
  25. $_SERVER['SCRIPT_FILENAME']——當前執行腳本的絕對路徑
  26. $_SERVER['SERVER_ADMIN']——該值指明瞭Apache服務器配置文件中的SERVER_ADMIN參數。若是腳本執行在一個虛擬主機上,則該值是那個虛擬主機的值。
  27. $_SERVER['SERVER_PORT']——Web服務器使用的端口。默認值爲「80」。若是使用了SSL安全鏈接,則這個值爲用戶設置的HTTP的端口。
    • Note: 在 Apache 2 裏,爲了獲取真實物理端口,必須設置 UseCanonicalName = On 以及 UseCanonicalPhysicalPort = On。 不然此值可能被僞造,不必定會返回真實端口值。 上下文有安全性要求的環境裏,不該該依賴此值。
  28. $_SERVER['SERVER_SIGNATURE']——包含了服務器版本和虛擬主機名的字符串。
  29. $_SERVER['SERVER_TRANSLATED']——當前腳本在文件系統(非文檔根目錄)的基本路徑。這是在服務器進行虛擬到真實路徑的映像後的結果。
  30. $_SERVER['SCRIPT_NAME']——包含當前腳本的當前路徑。
  31. $_SERVER['REQUEST_URL']——URL用來指定要訪問的頁面。
  32. $_SERVER['PHP_AUTH_DIGEST']——看成爲 Apache 模塊運行時,進行 HTTP Digest 認證的過程當中,此變量被設置成客戶端發送的「Authorization」 HTTP 頭內容(以便做進一步的認證操做)。
  33. $_SERVER['PHP_AUTH_USER']——當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,而且正在使用 HTTP 認證功能,這個變量即是用戶輸入的用戶名。
  34. $_SERVER['PHP_AUTH_PW']——當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,而且正在使用 HTTP 認證功能,這個變量即是用戶輸入的密碼。
  35. $_SERVER['AUTH_TYPE']——當 PHP 運行在 Apache 模塊方式下,而且正在使用 HTTP 認證功能,這個變量即是認證的類型。
  36. $_SERVER['PATH_INFO']——包含由客戶端提供的、跟在真實腳本名稱以後而且在查詢語句(query string)以前的路徑信息,若是存在的話。例如,若是當前腳本是經過 URL http://www.example.com/php/path_info.php/some/stuff?foo=bar被訪問,那麼 $_SERVER['PATH_INFO'] 將包含 /some/stuff。
  37. $_SERVER['ORIG_PATH_INFO']——在被 PHP 處理以前,「PATH_INFO」 的原始版本。
相關文章
相關標籤/搜索