摘要:導語是預定義的超全局變量。測試是在下進行的,環境為,訪問域名為,文件目錄在。上下文有安全性要求的環境里,不應該依賴此值。在實際工作中,有很多作用,這里只舉兩個簡單實例,獲取當前請求以及簡單防盜鏈當前是否為協議,前一頁面的參考資料手冊消息頭
導語
$_SERVER 是PHP預定義的超全局變量。所謂“超全局變量”,即在腳本全部作用域中都可以使用,$_SERVER保存關于報頭、路徑和腳本位置的信息。工作中經常忘記,在此整理記錄下,加深印象。測試是在Windows下進行的,環境為Apache/2.4.23 (Win32)+PHP/5.6.27-nts,訪問域名為http://www.example.com/index....,文件目錄在E:/WWW/example/。
主要內容詳解$_SERVER["SCRIPT_NAME"] => "/index.php",當前腳本路徑
$_SERVER["REQUEST_URI"] => "/index.php?id=1",訪問的頁面URI,包含查詢字符串
$_SERVER["QUERY_STRING"] => "id=1",查詢字符串,不存在為" "
$_SERVER["REQUEST_METHOD"] => "GET",請求方法,如"POST"、"PUT"等
$_SERVER["SERVER_PROTOCOL"] => "HTTP/1.1",通信協議的名稱和版本
$_SERVER["GATEWAY_INTERFACE"] => "CGI/1.1",服務器使用的CGI 規范的版本
$_SERVER["REMOTE_PORT"] => "60599",用戶連接服務器使用的端口
$_SERVER["SCRIPT_FILENAME"] => "E:/WWW/example/index.php",當前腳本的絕對路徑
$_SERVER["DOCUMENT_ROOT"] => "E:/WWW/example/",當前腳本文檔根目錄的絕對路徑
$_SERVER["REMOTE_ADDR"] => "127.0.0.1",用戶的IP地址
$_SERVER["SERVER_PORT"] => "80",服務器使用的端口
$_SERVER["SERVER_ADDR"] => "127.0.0.1",服務器的IP地址
$_SERVER["SERVER_NAME"] => "www.example.com",服務器的主機名,注:如果腳本運行于虛擬主機中,該名稱是由那個虛擬主機所設置的值決定。在 Apache 2 里,必須設置 UseCanonicalName = On 和 ServerName。 否則該值會由客戶端提供,就有可能被偽造。 上下文有安全性要求的環境里,不應該依賴此值。
$_SERVER["SERVER_SOFTWARE"] => "Apache/2.4.23 (Win32) OpenSSL/1.0.2j mod_fcgid/2.3.9",響應頭中Server的內容
$_SERVER["SERVER_SIGNATURE"] => "",包含了服務器版本和虛擬主機名的字符串
$_SERVER["HTTP_HOST"] => "www.example.com",請求頭中Host項的內容
$_SERVER["HTTP_CONNECTION"] => "keep-alive",請求頭中Connection項的內容
$_SERVER["HTTP_PRAGMA"] => "no-cache",請求頭中Pragma項的內容
$_SERVER["HTTP_CACHE_CONTROL"] => "no-cache",請求頭中Cache-Control項的內容
$_SERVER["HTTP_UPGRADE_INSECURE_REQUESTS"] => "1",請求頭中Upgrade-Insecure-Requests項的內容
$_SERVER["HTTP_USER_AGENT"] => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36",請求頭中User-Agent項的內容
$_SERVER["HTTP_ACCEPT"] => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8",請求頭中Accept項的內容
$_SERVER["HTTP_ACCEPT_ENCODING"] => "gzip, deflate",請求頭中Accept-Encoding項的內容
$_SERVER["HTTP_ACCEPT_LANGUAGE"] => "zh-CN,zh;q=0.8",請求頭中Accept-Language項的內容
$_SERVER["PHP_SELF"] => "/index.php",當前執行腳本的文件名
$_SERVER["REQUEST_TIME_FLOAT"] => 1510112348.8084,請求開始的時間戳,微秒級別精準度
$_SERVER["REQUEST_TIME"] => 1510112348,請求開始的時間戳
實例以上是測試中的 $_SERVER 的主要內容,根據不同的環境配置,會有些變化。在實際工作中,$_SERVER有很多作用,這里只舉兩個簡單實例,獲取當前請求URL以及簡單防盜鏈
參考資料:PHP手冊、HTTP消息頭
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/35998.html
摘要:導語是預定義的超全局變量。測試是在下進行的,環境為,訪問域名為,文件目錄在。上下文有安全性要求的環境里,不應該依賴此值。在實際工作中,有很多作用,這里只舉兩個簡單實例,獲取當前請求以及簡單防盜鏈當前是否為協議,前一頁面的參考資料手冊消息頭 導語 $_SERVER 是PHP預定義的超全局變量。所謂超全局變量,即在腳本全部作用域中都可以使用,$_SERVER保存關于報頭、路徑和腳本位置的信...
摘要:設置為,那么將不會創建超全局變量。如果設置為空,則填充的順序會以配置項中的順序為準。例如,設置為時,代表將包含和的值,并且當和中的鍵相同時,的值將覆蓋的值。結論的值與中的配置相關。推薦在項目中盡量不要使用,而是明確的從,,中取值。 前言 在平時的開發中,我們可能會遇到以下問題: 通過 $_REQUEST 得到值怎么和與 $_GET 獲取到的不同? $_SERVER 的值怎么是空的...
摘要:基本配置文件和變量詳解基本配置文件運行的用戶進程數,建議設置為等于總核心數。允許客戶端請求的最大單文件字節數。如果主體超過緩沖區大小,則完整主體或其一部分將寫入臨時文件。該指令在配置的,和區塊使用。 Nginx基本配置文件和變量詳解 1. 基本配置文件 /etc/nginx/nginx.conf # nginx運行的用戶 user nginx; # nginx進程數,建議設置為等于C...
摘要:基本配置文件和變量詳解基本配置文件運行的用戶進程數,建議設置為等于總核心數。允許客戶端請求的最大單文件字節數。如果主體超過緩沖區大小,則完整主體或其一部分將寫入臨時文件。該指令在配置的,和區塊使用。 Nginx基本配置文件和變量詳解 1. 基本配置文件 /etc/nginx/nginx.conf # nginx運行的用戶 user nginx; # nginx進程數,建議設置為等于C...
閱讀 2123·2019-08-29 16:53
閱讀 2698·2019-08-29 16:07
閱讀 2041·2019-08-29 13:13
閱讀 3266·2019-08-26 13:57
閱讀 1331·2019-08-26 13:31
閱讀 2432·2019-08-26 13:22
閱讀 1220·2019-08-26 11:43
閱讀 2084·2019-08-23 17:14