有時候,$_ENV
會為空,原因通常是php的設定檔php.ini的設定項為:variables_order
= "GPCS"
。要想讓$_ENV
的值不為空,那麼variables_order的值應該加上一個大寫字母“E”,即:variables_order
= "EGPCS"
。 所以,官方建議用getenv函數。
getenv()函數定義:取得系統的環境變數;
語法:string getenv(string varname);
註:傳回的是字串;
在PHP中getenv(參數)函數是用來取得環境變數的函數,根據提供不同的參數可以取得不同的環境變數。
具體參數如下:
「PHP_SELF」
目前正在執行腳本的檔名,與document root 相關。
如果PHP 以命令列方式運行,則變數在PHP 4.3.0 之前無效。
「argv」
傳遞給該腳本的參數。當腳本運行在命令列方式時,argv 變數傳遞給程式C 語言樣式的命令列參數。當呼叫GET 方法時,該變數包含請求的資料。
「argc」
包含傳遞給程式的命令列參數的數量(如果執行在命令列模式)。
「GATEWAY_INTERFACE」
伺服器所使用的CGI 規格的版本。例如,「CGI/1.1」。
「SERVER_NAME」
目前執行腳本所在伺服器主機的名稱。如果該腳本運行在一個虛擬主機上,該名稱是由該虛擬主機所設定的值決定。
「SERVER_SOFTWARE」
伺服器所識別的字串,在回應請求時的頭資訊中給出。
「SERVER_PROTOCOL」
請求頁面時通訊協定的名稱和版本。例如,「HTTP/1.0」。
「REQUEST_METHOD」
造訪頁面時的請求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。
附註: 如果要求的方式是HEAD,PHP 腳本將在送出頭資訊後中止(這表示在產生任何輸出後,不再有輸出緩衝)。
「REQUEST_TIME」
要求開始時的時間戳記。由PHP 5.1.0 起有效。
「QUERY_STRING」
#查詢(query)的字串(URL 中第一個問號? 之後的內容)。
「DOCUMENT_ROOT」
目前執行腳本所在的文件根目錄。在伺服器設定檔中定義。
「HTTP_ACCEPT」
目前要求的Accept: 頭資訊的內容。
「HTTP_ACCEPT_CHARSET」
目前要求的Accept-Charset: 頭資訊的內容。例如:「iso-8859-1,*,utf-8」。
「HTTP_ACCEPT_ENCODING」
目前要求的Accept-Encoding: 頭資訊的內容。例如:“gzip”。
「HTTP_ACCEPT_LANGUAGE」
目前要求的Accept-Language: 頭資訊的內容。例如:“en”。
「HTTP_CONNECTION」
目前要求的Connection: 頭資訊的內容。例如:「Keep-Alive」。
「HTTP_HOST」
目前要求的Host: 頭資訊的內容。
「HTTP_REFERER」
連結到目前頁面的前一頁面的URL 位址。不是所有的用戶代理(瀏覽器)都會設定這個變量,而且有的還可以手動修改HTTP_REFERER。因此,這個變數不總是真實正確的。
「HTTP_USER_AGENT」
目前請求的User-Agent: 頭資訊的內容。該字串表明了訪問該頁面的用戶代理的資訊。一個典型的例子是:Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)。也可以使用get_browser() 得到此資訊。
「HTTPS」
如果腳本是透過HTTPS 協定被訪問,則被設為一個非空的值。
「REMOTE_ADDR」
正在瀏覽目前頁面使用者的IP 位址。
「REMOTE_HOST」
正在瀏覽目前頁面使用者的主機名稱。反向網域解析是基於該用戶的
REMOTE_ADDR。
附註: 必須設定Web 伺服器來建立此變數。例如Apache 需要在httpd.conf 中有HostnameLookups On。參見gethostbyaddr()。
「REMOTE_PORT」
使用者連接到伺服器時所使用的連接埠。
「SCRIPT_FILENAME」
目前執行腳本的絕對路徑名稱。
附註: 如果腳本在CLI 中執行,作為相對路徑,例如file.php 或../file.php,$_SERVER[‘SCRIPT_FILENAME’] 將包含使用者指定的相對路徑。
「SERVER_ADMIN」
此值指明了Apache 伺服器設定檔中的SERVER_ADMIN 參數。如果腳本運行在一個虛擬主機上,則該值是該虛擬主機的值。
「SERVER_PORT」
伺服器所使用的連接埠。預設為“80”。如果使用SSL 安全連接,則這個值為使用者設定的HTTP 連接埠。
「SERVER_SIGNATURE」
包含伺服器版本和虛擬主機名稱的字串。
「PATH_TRANSLATED」
目前腳本所在檔案系統(不是文件根目錄)的基本路徑。這是在伺服器進行虛擬到真實路徑的映像後的結果。
註: PHP 4.3.2 之後,PATH_TRANSLATED 在Apache 2 SAPI 模式下不再和Apache 1 一樣隱含賦值,而是若Apache 不產生此值,PHP 便自己產生並將其值放入SCRIPT_FILENAME 伺服器常數中。這個修改遵守了CGI 規範,PATH_TRANSLATED 僅在PATH_INFO 被定義的條件下才存在。
Apache 2 使用者可以使用httpd.conf 中的AcceptPathInfo On 來定義PATH_INFO。
「SCRIPT_NAME」
#包含目前腳本的路徑。這在頁面需要指向自己時非常有用。 FILE 包含目前檔案的絕對路徑和檔案名稱(例如包含檔案)。
「REQUEST_URI」
存取此頁面所需的URI。例如,“/index.html”。
「PHP_AUTH_DIGEST」
當作為Apache 模組運行時,進行HTTP Digest 認證的過程中,此變數被設定為客戶端發送的「Authorization」HTTP 頭內容(以便作進一步的認證操作)。
「PHP_AUTH_USER」
當PHP 運行在Apache 或IIS(PHP 5 是ISAPI)模組方式下,並且正在使用HTTP 認證功能,這個變數就是用戶輸入的用戶名。
「PHP_AUTH_PW」
當PHP 運作在Apache 或IIS(PHP 5 是ISAPI)模組方式下,並且正在使用HTTP 認證功能,這個變數就是使用者輸入的密碼。
HTTP_CLIENT_IP
取得使用者的IP程式碼;
相關推薦:
##php函數getenv()與putenv()和$_SERVER詳解
以上是php中getenv()函數詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!