Giới thiệu
$_SERVER là superglobal chứa thông tin về HTTP headers, đường dẫn và vị trí script, v.v. Tất cả thông tin liên quan đến server và môi trường thực thi đều có trong associative array này. Hầu hết các entry trong mảng này được populate bởi web server.
PHP phiên bản trước 5.4.0 chứa $HTTP_SERVER_VARS với thông tin tương tự nhưng đã bị xóa. Dưới đây là các thành viên nổi bật:
PHP_SELF
Lưu tên file script đang thực thi. Ví dụ: script trong thư mục test của document root local server trả về đường dẫn:
<?php echo $_SERVER['PHP_SELF']; ?>
Kết quả với URL https://localhost/test/testscript.php:
/test/testscript.php
Các key quan trọng khác
- SERVER_ADDR - IP address của server chạy script hiện tại.
- SERVER_NAME - Tên host server. Localhost trả về localhost.
- QUERY_STRING - Chuỗi query (cặp key=value phân cách bằng & sau dấu ?). Ví dụ:
https://localhost/testscript?name=xyz&age=20. - REQUEST_METHOD - HTTP method: GET, POST, PUT, DELETE. URL với query string dùng GET.
- DOCUMENT_ROOT - Thư mục cấu hình làm document root. XAMPP Apache trả về
htdocs(C:/xampp/htdocs). - HTTP_USER_AGENT - Chuỗi user agent (trình duyệt) truy cập trang.
- REMOTE_ADDR - IP address của máy client xem trang hiện tại.
- SERVER_PORT - Port web server lắng nghe request. Mặc định 80.
Ví dụ liệt kê tất cả server variables
<?php foreach ($_SERVER as $k => $v) echo $k . "=>" . $v . "
"; ?>
Kết quả (ví dụ)
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_USER_AGENT=>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36... HTTP_ACCEPT=>text/html,application/xhtml+xml,application/xml;q=0.9... HTTP_ACCEPT_ENCODING=>gzip, deflate, br HTTP_ACCEPT_LANGUAGE=>en-US,en;q=0.9,mr;q=0.8 PATH=>C:\python37\Scripts\;C:\python37\;C:\Windows\system32;... 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.41 (Win64) OpenSSL/1.0.2s PHP/7.1.32 Server at localhost Port 80 SERVER_SOFTWARE=>Apache/2.4.41 (Win64) OpenSSL/1.0.2s PHP/7.1.32 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/testscript.php REMOTE_PORT=>49475 GATEWAY_INTERFACE=>CGI/1.1 SERVER_PROTOCOL=>HTTP/1.1 REQUEST_METHOD=>GET QUERY_STRING=> REQUEST_URI=>/testscript.php SCRIPT_NAME=>/testscript.php PHP_SELF=>/testscript.php REQUEST_TIME_FLOAT=>1599118525.327 REQUEST_TIME=>1599118525