| 自 PHP 4.1.0 起,取得外部變量的首選方法是用下面提及的超全局變量。在此之前,人們要么依賴(lài) register_globals,要么就是長(cháng)長(cháng)的預定義 PHP 數組($HTTP_*_VARS)。 在 PHP 5.0.0 中,長(cháng)的 PHP 預定義數組可以通過(guò)設置 register_long_arrays 來(lái)屏蔽。 服務(wù)器變量:$_SERVER $_SERVER 是一個(gè)包含諸如頭部(headers)、路徑(paths)和腳本位置(script locations)的數組。數組的實(shí)體由 web 服務(wù)器創(chuàng )建。不能保證所有的服務(wù)器都能產(chǎn)生所有的信息;服務(wù)器可能忽略了一些信息,或者產(chǎn)生了一些未在下面列出的新的信息。這意味著(zhù),大量的這些變量在 CGI 1.1 specification 中說(shuō)明,所以您應該仔細研究它。 這是一個(gè)“superglobal”,或者可以描述為自動(dòng)全局變量。這只不過(guò)意味這它在所有的腳本中都有效。在函數或方法中您不需要使用 global $_SERVER; 訪(fǎng)問(wèn)它,就如同使用 $HTTP_SERVER_VARS 一樣。 $HTTP_SERVER_VARS 包含著(zhù)同樣的信息,但是不是一個(gè)自動(dòng)全局變量。(注意: $HTTP_SERVER_VARS 和 $_SERVER 是不同的變量,PHP 處理它們的方式不同。) 如果設置了 register_globals 指令,這些變量也在所有腳本中可用;也就是,分離了 $_SERVER 和 $HTTP_SERVER_VARS 數組。相關(guān)信息,請參閱安全的相關(guān)章節 使用 Register Globals。這些單獨的全局變量不是自動(dòng)全局變量。 您或許會(huì )發(fā)現下面列出的某些 $_SERVER 元素并不可用。注意,如果以命令行方式運行 PHP,下面列出的元素幾乎沒(méi)有有效的(或是沒(méi)有任何實(shí)際意義的)。
“PHP_SELF” 如果 PHP 以命令行方式運行,該變量無(wú)效。 “argv” “argc” “GATEWAY_INTERFACE” 'SERVER_NAME' 'SERVER_SOFTWARE' “SERVER_PROTOCOL” “REQUEST_METHOD” “QUERY_STRING” “DOCUMENT_ROOT” “HTTP_ACCEPT” “HTTP_ACCEPT_CHARSET” “HTTP_ACCEPT_ENCODING” “HTTP_ACCEPT_LANGUAGE” “HTTP_CONNECTION” “HTTP_HOST” “HTTP_REFERER” “HTTP_USER_AGENT” “REMOTE_ADDR” 'REMOTE_HOST' 注: 必須配置 Web 服務(wù)器來(lái)建立此變量。例如 Apache 需要在 httpd.conf 中有 HostnameLookups On。參見(jiàn) gethostbyaddr()。 “REMOTE_PORT” “SCRIPT_FILENAME” “SERVER_ADMIN” “SERVER_PORT” “SERVER_SIGNATURE” “PATH_TRANSLATED” “SCRIPT_NAME” “REQUEST_URI” “PHP_AUTH_USER” “PHP_AUTH_PW” “AUTH_TYPE”
在解析器運行時(shí),這些變量從環(huán)境變量轉變?yōu)?PHP 全局變量名稱(chēng)空間(namespace)。它們中的許多都是由 PHP 所運行的系統決定。完整的列表是不可能的。請查看您系統的文檔以確定其特定的環(huán)境變量。 其它環(huán)境變量(包括 CGI 變量),無(wú)論 PHP 是以服務(wù)器模塊或是以 CGI 處理方式運行,都在這里列出了。 這是一個(gè)“superglobal”,或者可以描述為自動(dòng)全局變量。這只不過(guò)意味這它在所有的腳本中都有效。在函數或方法中您不需要使用 global $_ENV; 來(lái)訪(fǎng)問(wèn)它,就如同使用 $HTTP_ENV_VARS 一樣。 $HTTP_ENV_VARS 包含著(zhù)同樣的信息,但是不是一個(gè)自動(dòng)全局變量。(注意: HTTP_ENV_VARS 和 $_ENV 是不同的變量,PHP 處理它們的方式不同。) 如果設置了 register_globals 指令,這些變量也在所有腳本中可用;也就是,分離了 $_ENV 和 $HTTP_ENV_VARS 數組。相關(guān)信息,請參閱安全的相關(guān)章節 使用 Register Globals。這些單獨的全局變量不是自動(dòng)全局變量。 HTTP Cookies:$_COOKIE 通過(guò) HTTP cookies 傳遞的變量組成的數組。是自動(dòng)全局變量。 這是一個(gè)“superglobal”,或者可以描述為自動(dòng)全局變量。這只不過(guò)意味這它在所有的腳本中都有效。在函數或方法中您不需要使用 global $_COOKIE; 來(lái)訪(fǎng)問(wèn)它,就如同使用 $HTTP_COOKIE_VARS 一樣。 $HTTP_COOKIE_VARS 包含著(zhù)同樣的信息,但是不是一個(gè)自動(dòng)全局變量。(注意: HTTP_COOKIE_VARS 和 $_COOKIE 是不同的變量,PHP 處理它們的方式不同。) 如果設置了 register_globals 指令,這些變量也在所有腳本中可用;也就是,分離了 $_COOKIE 和 $HTTP_COOKIE_VARS 數組。相關(guān)信息,請參閱安全的相關(guān)章節 使用 Register Globals。這些單獨的全局變量不是自動(dòng)全局變量。 HTTP GET 變量:$_GET 通過(guò) HTTP GET 方法傳遞的變量組成的數組。是自動(dòng)全局變量。 這是一個(gè)“superglobal”,或者可以描述為自動(dòng)全局變量。這只不過(guò)意味這它在所有的腳本中都有效。在函數或方法中您不需要使用 global $_GET; 來(lái)訪(fǎng)問(wèn)它,就如同使用 $HTTP_GET_VARS 一樣。 $HTTP_GET_VARS 包含著(zhù)同樣的信息,但是不是一個(gè)自動(dòng)全局變量。(注意: HTTP_GET_VARS 和 $_GET 是不同的變量,PHP 處理它們的方式不同。) 如果設置了 register_globals 指令,這些變量也在所有腳本中可用;也就是,分離了 $_GET 和 $HTTP_GET_VARS 數組。相關(guān)信息,請參閱安全的相關(guān)章節 使用 Register Globals。這些單獨的全局變量不是自動(dòng)全局變量。 HTTP POST 變量:$_POST 通過(guò) HTTP POST 方法傳遞的變量組成的數組。是自動(dòng)全局變量。 這是一個(gè)“superglobal”,或者可以描述為自動(dòng)全局變量。這只不過(guò)意味這它在所有的腳本中都有效。在函數或方法中您不需要使用 global $_POST; 來(lái)訪(fǎng)問(wèn)它,就如同使用 $HTTP_POST_VARS 一樣。 $HTTP_POST_VARS 包含著(zhù)同樣的信息,但是不是一個(gè)自動(dòng)全局變量。(注意: HTTP_POST_VARS 和 $_POST 是不同的變量,PHP 處理它們的方式不同。) 如果設置了 register_globals 指令,這些變量也在所有腳本中可用;也就是,分離了 $_POST 和 $HTTP_POST_VARS 數組。相關(guān)信息,請參閱安全的相關(guān)章節 使用 Register Globals。這些單獨的全局變量不是自動(dòng)全局變量。 HTTP 文件上傳變量:$_FILES 通過(guò) HTTP POST 方法傳遞的已上傳文件項目組成的數組。是自動(dòng)全局變量。 這是一個(gè)“superglobal”,或者可以描述為自動(dòng)全局變量。這只不過(guò)意味這它在所有的腳本中都有效。在函數或方法中您不需要使用 global $_FILES; 來(lái)訪(fǎng)問(wèn)它,就如同使用 $HTTP_POST_FILES 一樣。 $HTTP_POST_FILES 包含著(zhù)同樣的信息,但是不是一個(gè)自動(dòng)全局變量。 如果設置了 register_globals 指令,這些變量也在所有腳本中可用;也就是,分離了 $_FILES 和 $HTTP_POST_FILES 數組。相關(guān)信息,請參閱安全的相關(guān)章節 使用 Register Globals。這些單獨的全局變量不是自動(dòng)全局變量。 Request 變量:$_REQUEST 注: 在 PHP 4.3.0 之前,$_FILES 也被包括在 $_REQUEST 數組中。 此關(guān)聯(lián)數組包含 $_GET,$_POST 和 $_COOKIE 中的全部?jì)热荨? 這是一個(gè)“superglobal”,或者可以描述為自動(dòng)全局變量。這只不過(guò)意味著(zhù)它在所有的腳本中都有效。在函數或方法中您不需要使用 global $_REQUEST; 來(lái)訪(fǎng)問(wèn)它。 如果設置了 register_globals 指令,這些變量也在所有腳本中可用;也就是,分離了 $_REQUEST 數組。相關(guān)信息,請參閱安全的相關(guān)章節 使用 Register Globals。這些單獨的全局變量不是自動(dòng)全局變量。 Session 變量:$_SESSION 包含當前腳本中 session 變量的數組。參閱 Session 函數 文檔以獲得更多信息。 這是一個(gè)“superglobal”,或者可以描述為自動(dòng)全局變量。這只不過(guò)意味這它在所有的腳本中都有效。在函數或方法中您不需要使用 global $_SESSION; 來(lái)訪(fǎng)問(wèn)它,就如同使用 $HTTP_SESSION_VARS 一樣。 $HTTP_SESSION_VARS 包含著(zhù)同樣的信息,但是不是一個(gè)自動(dòng)全局變量。 如果設置了 register_globals 指令,這些變量也在所有腳本中可用;也就是,分離了 $_SESSION 和 $HTTP_SESSION_VARS 數組。相關(guān)信息,請參閱安全的相關(guān)章節 使用 Register Globals。這些單獨的全局變量不是自動(dòng)全局變量。 Global 變量:$GLOBALS 由所有已定義全局變量組成的數組。變量名就是該數組的索引。 這是一個(gè)“superglobal”,或者可以描述為自動(dòng)全局變量。這只不過(guò)意味這它在所有的腳本中都有效。在函數或方法中您不需要使用 global $GLOBALS; 來(lái)訪(fǎng)問(wèn)它。 前一個(gè)錯誤消息:$php_errormsg |
聯(lián)系客服