萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP $_SERVER變量使用方法詳解

PHP $_SERVER變量使用方法詳解

PHP $_SERVER包括的變量都為全局變量了可以叫超級全局變量,下面我來給大家整理了常用的PHP $_SERVER用法詳細,希望對大家有所幫助。


我常用的$_SERVER[]變量

$_SERVER['HTTP_ACCEPT_LANGUAGE']//浏覽器語言  

$_SERVER['REMOTE_ADDR'] //當前用戶 IP 。  

$_SERVER['REMOTE_HOST'] //當前用戶主機名  

$_SERVER['REQUEST_URI'] //URL 

$_SERVER['REMOTE_PORT'] //端口。  

$_SERVER['SERVER_NAME'] //服務器主機的名稱。  

$_SERVER['PHP_SELF']//正在執行腳本的文件名  

$_SERVER['argv'] //傳遞給該腳本的參數。  

$_SERVER['argc'] //傳遞給程序的命令行參數的個數。  

$_SERVER['GATEWAY_INTERFACE']//CGI 規范的版本。  

$_SERVER['SERVER_SOFTWARE'] //服務器標識的字串  

$_SERVER['SERVER_PROTOCOL'] //請求頁面時通信協議的名稱和版本  

$_SERVER['REQUEST_METHOD']//訪問頁面時的請求方法  

$_SERVER['QUERY_STRING'] //查詢(query)的字符串。  

$_SERVER['DOCUMENT_ROOT'] //當前運行腳本所在的文檔根目錄  

$_SERVER['HTTP_ACCEPT'] //當前請求的 Accept: 頭部的內容。  

$_SERVER['HTTP_ACCEPT_CHARSET'] //當前請求的 Accept-Charset: 頭部的內容。  

$_SERVER['HTTP_ACCEPT_ENCODING'] //當前請求的 Accept-Encoding: 頭部的內容  

$_SERVER['HTTP_CONNECTION'] //當前請求的 Connection: 頭部的內容。例如:“Keep-Alive”。  

$_SERVER['HTTP_HOST'] //當前請求的 Host: 頭部的內容。  

$_SERVER['HTTP_REFERER'] //鏈接到當前頁面的前一頁面的 URL 地址。  

$_SERVER['HTTP_USER_AGENT'] //當前請求的 User_Agent: 頭部的內容。  

$_SERVER['HTTPS']//如果通過https訪問,則被設為一個非空的值(on),否則返回off  

$_SERVER['SCRIPT_FILENAME'] #當前執行腳本的絕對路徑名。  

$_SERVER['SERVER_ADMIN'] #管理員信息  

$_SERVER['SERVER_PORT'] #服務器所使用的端口  

$_SERVER['SERVER_SIGNATURE'] #包含服務器版本和虛擬主機名的字符串。  

$_SERVER['PATH_TRANSLATED'] #當前腳本所在文件系統(不是文檔根目錄)的基本路徑。  

$_SERVER['SCRIPT_NAME'] #包含當前腳本的路徑。這在頁面需要指向自己時非常有用。  

$_SERVER['PHP_AUTH_USER'] #當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變量便是用戶輸入的用戶名。  

$_SERVER['PHP_AUTH_PW'] #當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變量便是用戶輸入的密碼。  

$_SERVER['AUTH_TYPE'] #當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變量便是認證的類型 


頁面程序相關

•$_SERVER['PHP_SELF']:相對於網站根目錄的路徑及 PHP 程序名稱,與 document root 相關。
•$_SERVER['HTTP_REFERER']:鏈接到當前頁面的前一頁面的 URL 地址。
•$_SERVER['SCRIPT_NAME']:相對於網站根目錄的路徑及 PHP 程序文件名稱 。
•$_SERVER['REQUEST_URI']:訪問此頁面所需的 URI 。
•$_SERVER['SCRIPT_FILENAME']:當前運行 PHP 程序的絕對路徑及文件名。
•$_SERVER['PATH_TRANSLATED']:當前 PHP 程序所在文件系統(不是文檔根目錄)的基本路徑。
•$_SERVER['QUERY_STRING']:查詢(query)的字符串(URL 中第一個問號 ? 之後的內容但不包括 # 後面的內容)。
•$_SERVER['argv']:傳遞給當前 PHP 程序的參數。
•$_SERVER['argc']:命令行模式下,包含傳遞給程序的命令行參數的個數。
•$_SERVER['REQUEST_TIME']:請求開始時的時間戳,從 PHP 5.1.0 起有效。
•$_SERVER['REQUEST_METHOD']:訪問頁面時的請求方法,例如:“GET”、“HEAD”,“POST”或“PUT”。
•$_SERVER['HTTP_ACCEPT']:當前請求的 Accept: 頭信息的內容。
•$_SERVER['HTTP_ACCEPT_CHARSET']:當前請求的 Accept-Charset: 頭信息的內容。例如:“iso-8859-1,*,utf-8”。
•$_SERVER['HTTP_ACCEPT_ENCODING']:當前請求的 Accept-Encoding: 頭信息的內容。例如:“gzip”。
•$_SERVER['HTTP_ACCEPT_LANGUAGE']:當前請求的 Accept-Language: 頭信息的內容。例如:“zh-cn”。
•$_SERVER['HTTP_CONNECTION']:當前請求的 Connection: 頭信息的內容。例如:“Keep-Alive”。
•$_SERVER['HTTP_HOST']:當前請求的 Host: 頭信息的內容。
•$_SERVER['HTTPS']:如果 PHP 程序是通過 HTTPS 協議被訪問,則被設為一個非空的值。
•$_SERVER['PHP_AUTH_DIGEST']:當作為 Apache 模塊運行時,進行 HTTP Digest 認證的過程中,此變量被設置成客戶端發送的“Authorization”HTTP 頭內容(以便作進一步的認證操作)。
•$_SERVER['PHP_AUTH_USER']:當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,並且正在使用 HTTP 認證功能,這個變量便是用戶輸入的用戶名。
•$_SERVER['PHP_AUTH_PW']:當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,並且正在使用 HTTP 認證功能,這個變量便是用戶輸入的密碼。
•$_SERVER['AUTH_TYPE']:當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變量便是認證的類型。

服務器端相關

•$_SERVER['DOCUMENT_ROOT']:當前運行 PHP 程序所在的文檔根目錄,在服務器配置文件中定義。
•$_SERVER['GATEWAY_INTERFACE']:服務器使用的 CGI 規范的版本,例如:“CGI/1.1”。
•$_SERVER['SERVER_ADDR']:當前運行 PHP 程序所在的服務器的 IP 地址。
•$_SERVER['SERVER_NAME']:當前運行 PHP 程序所在的服務器的名稱。
•$_SERVER['SERVER_ADMIN']:Apache 服務器配置文件中的 SERVER_ADMIN 參數。
•$_SERVER['SERVER_PORT']:服務器所使用的端口。如果使用 SSL 安全連接,則這個值為用戶設置的 HTTP 端口。

•$_SERVER['SERVER_SIGNATURE']:包含服務器版本和虛擬主機名的字符串。
•$_SERVER['SERVER_SOFTWARE']:服務器標識的字串,在響應請求時的頭信息中給出。
•$_SERVER['SERVER_PROTOCOL']:請求頁面時通信協議的名稱和版本,例如:“HTTP/1.0”。

其他雜項

•$_SERVER['HTTP_USER_AGENT']:當前請求的 User-Agent: 頭信息的內容,該字符串表明了訪問該頁面的用戶代理的信息。
•$_SERVER['REMOTE_ADDR']:正在浏覽當前頁面用戶的 IP 地址。
•$_SERVER['REMOTE_HOST']:正在浏覽當前頁面用戶的主機名。
•$_SERVER['REMOTE_PORT']:用戶連接到服務器時所使用的端口。
注意,如果以命令行方式運行 PHP,上面列出的元素幾乎沒有有效的(或是沒有任何實際意義的)。


例1

PHP獲取當前url路徑

1,$_SERVER["QUERY_STRING"]
說明:查詢(query)的字符串
2,$_SERVER["REQUEST_URI"]
說明:訪問此頁面所需的URI

3,$_SERVER["SCRIPT_NAME"]
說明:包含當前腳本的路徑

4,$_SERVER["PHP_SELF"]
說明:當前正在執行腳本的文件名

實例:
1,http://www.111cn.net/ (直接打開主頁)
結果:
$_SERVER["QUERY_STRING"] = ""
$_SERVER["REQUEST_URI"] = "/"
$_SERVER["SCRIPT_NAME"] = "/index.php"
$_SERVER["PHP_SELF"]     = "/index.php"

2,http://www.111cn.net/?p=222 (附帶查詢)
結果:
$_SERVER["QUERY_STRING"] = "p=222"
$_SERVER["REQUEST_URI"] = "/?p=222"
$_SERVER["SCRIPT_NAME"] = "/index.php"
$_SERVER["PHP_SELF"]     = "/index.php"

3,http://www.111cn.net/index.php?p=222&q=biuuu
結果:
$_SERVER["QUERY_STRING"] = "p=222&q=biuuu"
$_SERVER["REQUEST_URI"] = "/index.php?p=222&q=biuuu"
$_SERVER["SCRIPT_NAME"] = "/index.php"
$_SERVER["PHP_SELF"]     = "/index.php"

$_SERVER["QUERY_STRING"]獲取查詢語句,實例中可知,獲取的是?後面的值
$_SERVER["REQUEST_URI"] 獲取http://www.111cn.net後面的值,包括/
$_SERVER["SCRIPT_NAME"] 獲取當前腳本的路徑,如:index.php
$_SERVER["PHP_SELF"] 當前正在執行腳本的文件名


當前url:"http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']


總結一下,對於QUERY_STRING,REQUEST_URI,SCRIPT_NAME和PHP_SELF,深入了解將有利於我們在$_SERVER函數中正確調用這四個值。通過實例詳解$_SERVER函數中QUERY_STRING,REQUEST_URI,SCRIPT_NAME和PHP_SELF掌握四個變量之間的區別。

copyright © 萬盛學電腦網 all rights reserved