(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
$_SERVER — Информация о сервере и среде исполнения
Переменная $_SERVER - это массив (array), содержащий такую информацию, как заголовки, пути и местоположения скриптов. Записи в этом массиве создаются веб-сервером, поэтому нет гарантии, что каждый веб-сервер будет предоставлять любую из этих переменных; серверы могут опускать некоторые из них или предоставлять другие, не указанные здесь. Однако большинство из этих переменных учтены в спецификации » CGI/1.1 и, скорее всего, будут определены.
Замечание: При запуске PHP в командной строке большинство из этих записей будут недоступны или не будут иметь никакого значения.
В дополнение к перечисленным ниже элементам, PHP будет создавать дополнительные элементы со значениями из заголовков запросов. У элементов будет имя HTTP_
, за которым следует имя заголовка, написанное с заглавной буквы и с подчёркиванием вместо дефиса. Например, заголовок Accept-Language
будет доступен как $_SERVER['HTTP_ACCEPT_LANGUAGE']
.
'CGI/1.1'
.. Замечание: В Apache 2 необходимо установить
UseCanonicalName = On
иServerName
. В противном случае это значение отразит имя хоста, предоставленное клиентом, которое может быть подделано. Небезопасно полагаться на это значение в контексте, требующем безопасности.
'HTTP/1.0'
; 'GET'
, 'HEAD'
, 'POST'
, 'PUT'
. Замечание:
PHP-скрипт завершается после отправки заголовков (то есть после того, как осуществляется любой вывод без буферизации вывода), если метод запроса был
HEAD
.
Замечание: Сервер должен быть настроен, чтобы создавать эту переменную. Для примера, в Apache необходимо присутствие директивы
HostnameLookups On
в файле httpd.conf, чтобы эта переменная создавалась. Смотрите также gethostbyaddr().
Абсолютный путь к исполняемому скрипту.
Замечание:
Если скрипт запускается в командной строке (CLI), используя относительный путь, такой как file.php или ../file.php, переменная $_SERVER['SCRIPT_FILENAME'] будет содержать относительный путь, указанный пользователем.
'80'
; используя SSL, например, это значение будет таким, какое сконфигурировано для соединений безопасного HTTP. Замечание: Чтобы получить физический (реальный) порт в Apache 2, необходимо установить
UseCanonicalName = On
иUseCanonicalPhysicalPort = On
, иначе это значение может быть подменено и не вернуть реальной значение физического порта. Полагаться на это значение небезопасно в контексте приложений, требующих усиленной безопасности.
Замечание: Пользователи Apache 2 могут использовать директиву
AcceptPathInfo = On
в конфигурационном файле httpd.conf для задания переменной PATH_INFO.
/index.html
'. /some/stuff
. Пример #1 Пример использования $_SERVER
<?php
echo $_SERVER['SERVER_NAME'];
?>
Вывод приведённого примера будет похож на:
www.example.com
Замечание:
Это «суперглобальная» или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.