PHP - $_SERVER

$_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

Example

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