$_SERVER là một biến siêu toàn cục trong PHP. Nó chứa thông tin liên quan đến tiêu đề HTTP, đường dẫn và vị trí tập tin kịch bản, v.v.
$_SERVER là một mảng liên kết và nó chứa tất cả thông tin liên quan đến máy chủ và môi trường thực thi.
Hầu hết các mục trong mảng liên kết này được điền bởi máy chủ web. Các mục có thể thay đổi từ máy chủ web này sang máy chủ web khác, vì các máy chủ có thể bỏ qua một số mục hoặc cung cấp các mục khác.
Đối với một kịch bản PHP chạy trên dòng lệnh, hầu hết các mục này sẽ không có sẵn hoặc không có ý nghĩa gì.
PHP cũng sẽ tạo ra các phần tử bổ sung với giá trị từ các tiêu đề yêu cầu. Các mục này sẽ được đặt tên là "HTTP_" theo sau là tên tiêu đề, được viết hoa và thay dấu gạch ngang bằng dấu gạch dưới.
Ví dụ, tiêu đề "Accept-Language" sẽ có sẵn dưới dạng $_SERVER['HTTP_ACCEPT_LANGUAGE'].
Các phiên bản PHP trước 5.4.0 có $HTTP_SERVER_VARS, chứa thông tin tương tự nhưng đã bị loại bỏ.
Bảng dưới đây liệt kê một số biến máy chủ quan trọng của mảng $_SERVER kèm theo mô tả về giá trị của chúng.
Sr.No | Server Variables & Description |
---|---|
1 | PHP_SELF Stores filename of currently executing script. |
2 | SERVER_ADDR This property of array returns the IP address of the server under which the current script is executing. |
3 | SERVER_NAME Name of server host under which the current script is executing. In case of a server running locally, localhost is returned. |
4 | QUERY_STRING A query string is the string of key value pairs separated by the "&" symbol and appended to the URL after the "?" symbol. For example, http://localhost/testscript?name=xyz&age=20 URL returns trailing query string |
5 | REQUEST_METHOD HTTP request method used for accessing a URL, such as POST, GET, POST, PUT or DELETE. In the above query string example, a URL attached to query string with the "?" symbol requests the page with GET method |
6 | DOCUMENT_ROOT Returns the name of the directory on the server that is configured as the document root. On XAMPP apache server, it returns htdocs as the name of document root c:/xampp/htdocs |
7 | REMOTE_ADDR IP address of the machine from where the user is viewing the current page. |
8 | SERVER_PORT Port number on which the web server is listening to the incoming request. Default is 80 |
Kịch bản sau được gọi từ thư mục gốc của máy chủ XAMPP sẽ liệt kê tất cả các biến máy chủ −
<?php foreach ($_SERVER as $k=>$v) echo $k . "=>" . $v . "\n"; ?>
Nó sẽ tạo ra output −
MIBDIRS=>C:/xampp/php/extras/mibs MYSQL_HOME=>\xampp\mysql\bin OPENSSL_CONF=>C:/xampp/apache/bin/openssl.cnf PHP_PEAR_SYSCONF_DIR=>\xampp\php PHPRC=>\xampp\php TMP=>\xampp\tmp HTTP_HOST=>localhost HTTP_CONNECTION=>keep-alive HTTP_SEC_CH_UA=>"Chromium";v="116", "Not) A;Brand";v="24", "Google Chrome";v="116" HTTP_SEC_CH_UA_MOBILE=>?0 HTTP_SEC_CH_UA_PLATFORM=>"Windows" HTTP_DNT=>1 HTTP_UPGRADE_INSECURE_REQUESTS=>1 HTTP_USER_AGENT=>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 HTTP_ACCEPT=>text/html,application/xhtml+xml,application/xml; q=0.9,image/avif,image/webp,image/apng,*/*; q=0.8,application/signed-exchange;v=b3;q=0.7 HTTP_SEC_FETCH_SITE=>none HTTP_SEC_FETCH_MODE=>navigate HTTP_SEC_FETCH_USER=>?1 HTTP_SEC_FETCH_DEST=>document HTTP_ACCEPT_ENCODING=>gzip, deflate, br HTTP_ACCEPT_LANGUAGE=>en-US,en;q=0.9,mr;q=0.8 PATH=>C:\Python311\Scripts\; C:\Python311\;C:\WINDOWS\system32; C:\WINDOWS;C:\WINDOWS\System32\Wbem; C:\WINDOWS\System32\WindowsPowerShell\v1.0\; C:\WINDOWS\System32\OpenSSH\;C:\xampp\php; C:\Users\user\AppData\Local\Microsoft\WindowsApps; C:\VSCode\Microsoft VS Code\bin SystemRoot=>C:\WINDOWS COMSPEC=>C:\WINDOWS\system32\cmd.exe PATHEXT=>.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW WINDIR=>C:\WINDOWS SERVER_SIGNATURE=> Apache/2.4.56 (Win64) OpenSSL/1.1.1t PHP/8.0.28 Server at localhost Port 80 SERVER_SOFTWARE=>Apache/2.4.56 (Win64) OpenSSL/1.1.1t PHP/8.0.28 SERVER_NAME=>localhost SERVER_ADDR=>::1 SERVER_PORT=>80 REMOTE_ADDR=>::1 DOCUMENT_ROOT=>C:/xampp/htdocs REQUEST_SCHEME=>http CONTEXT_PREFIX=> CONTEXT_DOCUMENT_ROOT=>C:/xampp/htdocs SERVER_ADMIN=>postmaster@localhost SCRIPT_FILENAME=>C:/xampp/htdocs/hello.php REMOTE_PORT=>54148 GATEWAY_INTERFACE=>CGI/1.1 SERVER_PROTOCOL=>HTTP/1.1 REQUEST_METHOD=>GET QUERY_STRING=> REQUEST_URI=>/hello.php SCRIPT_NAME=>/hello.php PHP_SELF=>/hello.php REQUEST_TIME_FLOAT=>1694802456.9816 REQUEST_TIME=>1694802456