Home »
PHP
PHP Superglobal - $_SERVER (With Examples)
By Kongnyu Carine, Shahnail Khan Last updated : December 14, 2023
PHP $_SERVER
PHP $_SERVER is an array that contains the server-related information like headers, paths, and script locations, a web server entries this information in this array that is accessible through the $_SERVER variable. It's automatically determined by PHP based on the server configuration and the current HTTP request. This array is accessible from any part of your script, making it a convenient resource for retrieving important details.
PHP $_SERVER superglobal variable is very important and is used to get information about the server name, documents root, and many others. There are many elements available in the $_SERVER superglobal array.
Syntax of PHP $_SERVER
The general syntax for accessing elements within the $_SERVER superglobal array in PHP is:
$_SERVER['key'];
Here, key is a placeholder for the specific element you want to access. The $_SERVER superglobal array contains various elements that provide information about the server environment, the current request, and the client. You replace key with the name of the specific element you want to retrieve information from, and you enclose the key in single quotes.
For example:
$serverName = $_SERVER['SERVER_NAME'];
In this case, $_SERVER['SERVER_NAME'] is accessing the 'SERVER_NAME' element within the $_SERVER superglobal array, which contains the name of the server host under which the current script is executing.
PHP $_SERVER Elements/Keys
Below are the keys (or, elements) that can be used with the PHP $_SERVER superglobal to access the specific PHP server information:
Element/Code
|
Description
|
Example
|
$_SERVER['PHP_SELF'] |
Specify the current script filename
|
/index.php
|
$_SERVER['GATEWAY_INTERFACE'] |
Specify CGI version
|
CGI/1.1
|
$_SERVER['SERVER_ADDR'] |
Specify the host server IP address
|
192.168.1.1
|
$_SERVER['SERVER_NAME'] |
Specify the host server name
|
www.includehelp.com
|
$_SERVER['SERVER_SOFTWARE'] |
Specify server identification string (e.g., Apache/2.2.24)
|
Apache/2.4.18 (Ubuntu)
|
$_SERVER['SERVER_PROTOCOL'] |
Specify information protocol name and revision (e.g., HTTP/1.1)
|
HTTP/1.1
|
$_SERVER['REQUEST_METHOD'] |
Specify request method (e.g., POST)
|
GET
|
$_SERVER['REQUEST_TIME'] |
Specify request start timestamp
|
1635346425
|
$_SERVER['QUERY_STRING'] |
Specify query string if accessed via query string
|
page=home&category=php
|
$_SERVER['HTTP_ACCEPT'] |
Specify Accept header from the current request
|
text/html,application/xhtml+ xml,application/xml;q=0.9,*/*;q=0.8
|
$_SERVER['HTTP_ACCEPT_CHARSET'] |
Specify Accept_Charset header from the current request (e.g., utf-8, ISO-8859-1)
|
utf-8
|
$_SERVER['HTTP_HOST'] |
Specify host header from the current request
|
www.includehelp.com
|
$_SERVER['HTTP_REFERER'] |
Specify the complete URL of the current page (not always reliable)
|
https://www.includehelp.com/php
|
$_SERVER['HTTPS'] |
Specify secure HTTP protocol indicator
|
off
|
$_SERVER['REMOTE_ADDR'] |
Specify user's IP address viewing the current page
|
203.0.113.42
|
$_SERVER['REMOTE_HOST'] |
Specify the user's Hostname viewing the current page
|
user.includehelp.com
|
$_SERVER['REMOTE_PORT'] |
Specify the port used on the user's machine to communicate with the web server
|
54789
|
$_SERVER['SCRIPT_FILENAME'] |
Specify the absolute pathname of the currently executing script
|
/var/www/html/index.php
|
$_SERVER['SERVER_ADMIN'] |
Specify value of the SERVER_ADMIN directive in the server configuration file
|
[email protected]
|
$_SERVER['SERVER_PORT'] |
Specify the port on the server machine used for communication
|
80
|
$_SERVER['SERVER_SIGNATURE'] |
Specify server version and virtual host name added to server-generated pages
|
Apache/2.4.18 (Ubuntu) Server at
www.includehelp.com Port 80
|
$_SERVER['PATH_TRANSLATED'] |
Specify file system-based path to the current script
|
/var/www/html/index.php
|
$_SERVER['SCRIPT_NAME'] |
Specify the path of the current script
|
/index.php
|
$_SERVER['SCRIPT_URI'] |
Specify the URI of the current page
|
https://www.includehelp.com/index.php
|
Example of $_SERVER in PHP
Consider the below example of $SERVER.
PHP code to demonstrate example of $_SERVER
<?php
// file name of the present executing script
echo $_SERVER["PHP_SELF"] . "<br>";
//the document root of the server
echo $_SERVER["DOCUMENT_ROOT"] . "<br>";
//the ip address of the server
echo $_SERVER["SERVER_ADDR"] . "<br>";
//the name of the server
echo $_SERVER["SERVER_NAME"] . "<br>";
//the method the page is using to request
echo $_SERVER["REQUEST_METHOD"] . "<br>";
// the time stamp of the start of the request
echo $_SERVER["REQUEST_TIME"] . "<br>";
//used to detect the OS, browser
echo $_SERVER["HTTP_USER_AGENT"] . "<br>";
// the current user ip address
echo $_SERVER["REMOTE_ADDR"];
?>
Output
/CA2.php
C:/xampp/htdocs
::1
localhost
GET
1558789727
Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/74.0.3729.169 Safari/537.36
::1
Note: The output is based on my own computer, so yours may be different.