元素/代碼 描述
$_SERVER['PHP_SELF'] 目前執行腳本的檔案名,與 document root 有關。
$_SERVER['GATEWAY_INTERFACE'] 伺服器使用的 CGI 規範的版本。
$_SERVER['SERVER_ADDR'] 目前運作腳本所在的伺服器的 IP 位址。
$_SERVER['SERVER_NAME'] 目前運作腳本所在的伺服器的主機名。如果腳本運作于虛拟主機中,該名稱是由那個虛拟主機所設定的值決定。
$_SERVER['SERVER_SOFTWARE'] 伺服器辨別字元串,在響應請求時的頭資訊中給出。
$_SERVER['SERVER_PROTOCOL'] 請求頁面時通信協定的名稱和版本。
$_SERVER['REQUEST_METHOD'] 通路頁面使用的請求方法。
$_SERVER['REQUEST_TIME'] 請求開始時的時間戳。從 PHP 5.1.0 起可用。
$_SERVER['QUERY_STRING'] query string(查詢字元串),如果有的話,通過它進行頁面通路。
$_SERVER['HTTP_ACCEPT'] 目前請求頭中 Accept: 項的内容,如果存在的話。
$_SERVER['HTTP_ACCEPT_CHARSET'] 目前請求頭中 Accept-Charset: 項的内容,如果存在的話。
$_SERVER['HTTP_HOST'] 目前請求頭中 Host: 項的内容,如果存在的話。
$_SERVER['HTTP_REFERER'] 引導使用者代理到目前頁的前一頁的位址(如果存在)。由 user agent 設定決定。并不是所有的使用者代理都會設定該項,有的還提供了修改 HTTP_REFERER 的功能。簡言之,該值并不可信。)
$_SERVER['HTTPS'] 如果腳本是通過 HTTPS 協定被通路,則被設為一個非空的值。
$_SERVER['REMOTE_ADDR'] 浏覽目前頁面的使用者的 IP 位址。
$_SERVER['REMOTE_HOST'] 浏覽目前頁面的使用者的主機名。DNS 反向解析不依賴于使用者的 REMOTE_ADDR。
$_SERVER['REMOTE_PORT'] 使用者機器上連接配接到 Web 伺服器所使用的端口号。
$_SERVER['SCRIPT_FILENAME'] 目前執行腳本的絕對路徑。
$_SERVER['SERVER_ADMIN'] 該值指明了 Apache 伺服器配置檔案中的 SERVER_ADMIN 參數。如果腳本運作在一個虛拟主機上,則該值是那個虛拟主機的值。
$_SERVER['SERVER_PORT'] Web 伺服器使用的端口。預設值為 "80"。如果使用 SSL 安全連接配接,則這個值為使用者設定的 HTTP 端口。
$_SERVER['SERVER_SIGNATURE'] 包含了伺服器版本和虛拟主機名的字元串。
$_SERVER['PATH_TRANSLATED'] 目前腳本所在檔案系統(非文檔根目錄)的基本路徑。這是在伺服器進行虛拟到真實路徑的映像後的結果。
$_SERVER['SCRIPT_NAME'] 包含目前腳本的路徑。這在頁面需要指向自己時非常有用。__FILE__ 常量包含目前腳本(例如包含檔案)的完整路徑和檔案名。
$_SERVER['SCRIPT_URI'] URI 用來指定要通路的頁面。例如 "/index.html"。
下面是某網友整理的結果,可參考下。
伺服器變量 $_SERVER 詳解:
1、$_SESSION['PHP_SELF'] -- 擷取目前正在執行腳本的檔案名
2、$_SERVER['SERVER_PROTOCOL'] -- 請求頁面時通信協定的名稱和版本。例如,“HTTP/1.0”。
3、$_SERVER['REQUEST_TIME'] -- 請求開始時的時間戳。從 PHP 5.1.0 起有效。和time函數效果一樣。
4、$_SERVER['argv'] -- 傳遞給該腳本的參數。我試了下,get方法可以得到$_SERVER['argv'][0];post方法無法給他指派。
5、$_SERVER['SERVER_NAME'] -- 傳回目前主機名。
6、$_SERVER['SERVER_SOFTWARE'] -- 伺服器辨別的字串,在響應請求時的頭資訊中給出。 如Microsoft-IIS/6.0
7、$_SERVER['REQUEST_METHOD'] -- 通路頁面時的請求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。
8、$_SERVER['QUERY_STRING'] -- 查詢(query)的字元串(URL 中第一個問号 ? 之後的内容)。
9、$_SERVER['DOCUMENT_ROOT'] -- 目前運作腳本所在的文檔根目錄。在伺服器配置檔案中定義。 如E:\server
10、$_SERVER['HTTP_ACCEPT'] -- 目前請求的 Accept: 頭資訊的内容。
11、$_SERVER['HTTP_ACCEPT_CHARSET'] -- 目前請求的 Accept-Charset: 頭資訊的内容。例如:“iso-8859-1,*,utf-8”。
12、$_SERVER['HTTP_ACCEPT_ENCODING'] -- 目前請求的 Accept-Encoding: 頭資訊的内容。例如:“gzip”。
13、$_SERVER['HTTP_ACCEPT_LANGUAGE'] -- 目前請求的 Accept-Language: 頭資訊的内容。例如:“en”。
14、$_SERVER['HTTP_CONNECTION'] -- 目前請求的 Connection: 頭資訊的内容。例如:“Keep-Alive”。
15、$_SERVER['HTTP_HOST'] -- 目前請求的 Host: 頭資訊的内容。
16、$_SERVER['HTTP_REFERER'] -- 連結到目前頁面的前一頁面的 URL 位址。
17、$_SERVER['HTTP_USER_AGENT'] -- 傳回使用者使用的浏覽器資訊。也可以使用 get_browser() 得到此資訊。
18、$_SERVER['HTTPS'] -- 如果通過https通路,則被設為一個非空的值,否則傳回off.
19、$_SERVER['REMOTE_ADDR'] -- 正在浏覽目前頁面使用者的 IP 位址。
20、$_SERVER['REMOTE_HOST'] -- 正在浏覽目前頁面使用者的主機名。反向域名解析基于該使用者的 REMOTE_ADDR。如本地測試傳回127.0.0.1
21、$_SERVER['REMOTE_PORT'] -- 使用者連接配接到伺服器時所使用的端口。我在本機測試沒通過,不知道什麼原因。
22、$_SERVER['SCRIPT_FILENAME'] -- 目前執行腳本的絕對路徑名。如傳回E:\server\index.php
23、$_SERVER['SERVER_ADMIN'] -- 該值指明了 Apache 伺服器配置檔案中的 SERVER_ADMIN 參數。如果腳本運作在一個虛拟主機上,則該值是那個虛拟主機的值
24、$_SERVER['SERVER_PORT'] -- 伺服器所使用的端口。預設為“80”。如果使用 SSL 安全連接配接,則這個值為使用者設定的 HTTP 端口。
25、$_SERVER['SERVER_SIGNATURE'] -- 包含伺服器版本和虛拟主機名的字元串。
26、$_SERVER['PATH_TRANSLATED'] -- 目前腳本所在檔案系統(不是文檔根目錄)的基本路徑。這是在伺服器進行虛拟到真實路徑的映像後的結果。 Apache 2 用 戶可以使用 httpd.conf 中的 AcceptPathInfo On 來定義 PATH_INFO。
27、$_SERVER['SCRIPT_NAME'] -- 包含目前腳本的路徑。這在頁面需要指向自己時非常有用。__FILE__ 包含目前檔案的絕對路徑和檔案名(例如包含檔案)。
28、$_SERVER['REQUEST_URI'] -- 通路此頁面所需的 URI。例如,“/index.html”。
29、$_SERVER['PHP_AUTH_DIGEST'] -- 當作為 Apache 子產品運作時,進行 HTTP Digest 認證的過程中,此變量被設定成用戶端發送的“Authorization”HTTP 頭内容(以便作進一步的認證操作)。
30、$_SERVER['PHP_AUTH_USER']-- 當 PHP 運作在 Apache 或 IIS(PHP 5 是 ISAPI)子產品方式下,并且正在使用 HTTP 認證功能,這個變量便是使用者輸入的使用者名。
31、$_SERVER['PHP_AUTH_PW'] -- 當 PHP 運作在 Apache 或 IIS(PHP 5 是 ISAPI)子產品方式下,并且正在使用 HTTP 認證功能,這個變量便是使用者輸入的密碼。
32、$_SERVER['AUTH_TYPE']--當 PHP 運作在 Apache 子產品方式下,并且正在使用 HTTP 認證功能,這個變量便是認證的類型。
一、$_SERVER['SERVER_NAME'] 在windows系統下,末尾是有 / 的,linux下沒有/ 。 可用以下方法處理
1、不論是那種系統直接全部加上 / 然後在進行替換 ,切記 ,應如此替換 str_replace('\\', '/', $fileUrl); 才可以。
2、判斷是那種作業系統,使用PHP_OS,然後進行字元截取進行判斷
<?php
echo 'documentroot:'.$_SERVER['DOCUMENT_ROOT'].'<br>'; //根目錄,在apache的配置檔案裡定義:httpd.conf 比如:DocumentRoot "D:/work/php_root"
echo 'httphost:'.$_SERVER['HTTP_HOST'].'<br>'; //域名,比如:localhost
echo 'phpself:'.$_SERVER['PHP_SELF'].'<br>'; // 從根目錄到檔案本身的路徑
echo 'script filename'.$_SERVER['SCRIPT_FILENAME'].'<br>'; //documentroot+phpself
echo 'request uri'.$_SERVER['REQUEST_URI'].'<br>'; //從根目錄開始所有的URL字元串,包括問号之後的字元
echo 'request method:'.$_SERVER['REQUEST_METHOD'].'<br>'; //請求的方法
echo 'name:'.$_REQUEST['name'].'<br>'; //請求參數的值
?>