$_SERVER

(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'].

Индексы

'PHP_SELF'
Название файла скрипта, который выполняется в текущий момент, относительно корня документов. Например, переменная $_SERVER['PHP_SELF'] в скрипте по адресу http://example.com/foo/bar.php примет значение /foo/bar.php. Константа __FILE__ содержит полный путь и название файла текущего (то есть подключённого) файла. Переменная содержит название скрипта, если PHP запустили в командной строке.
'argv'
Массив аргументов, которые передали скрипту. При запуске скрипта в командой строке это даёт C-подобный доступ к параметрам командной строки. При вызове через метод GET этот массив содержит строку запроса.
'argc'
Содержит количество параметров, которые передали скрипту, если скрипт запустили в командной строке.
'GATEWAY_INTERFACE'
Содержит используемую сервером версию спецификации CGI-интерфейса; например 'CGI/1.1'..
'SERVER_ADDR'
IP-адрес сервера, по которому выполняется текущий скрипт.
'SERVER_NAME'
Имя хоста, на котором выполняется текущий скрипт. Переменная содержит имя, которое определили для виртуального хоста, если скрипт выполняется на виртуальном хосте.

Замечание: В Apache 2 потребуется установить директивы UseCanonicalName = On и ServerName, иначе значение отразит имя хоста, которое предоставил клиент и которое подделывают злоумышленники. Небезопасно полагаться на это значение в контексте, который требует безопасности.

'SERVER_SOFTWARE'
Строка идентификации сервера, указанная в заголовках, когда происходит ответ на запрос.
'SERVER_PROTOCOL'
Имя и версия информационного протокола, через который запросили страницу; например 'HTTP/1.0';
'REQUEST_METHOD'
Метод, которым запросили страницу; например 'GET', 'HEAD', 'POST', 'PUT'.

Замечание:

При запросе методом HEAD PHP-скрипт завершается после отправки заголовков — после любого вывода без буферизации вывода.

'REQUEST_TIME'
Метка времени начала запроса.
'REQUEST_TIME_FLOAT'
Метка времени начала запроса с точностью до микросекунд.
'QUERY_STRING'
Строка запроса, если адрес содержит такую, через которую получили доступ к странице.
'DOCUMENT_ROOT'
Директория корня документов, в которой выполняется текущий скрипт, в точности та, которую указали в конфигурационном файле сервера.
'HTTPS'
Принимает непустое значение, если запрос выполнили через протокол HTTPS.
'REMOTE_ADDR'
IP-адрес, с которого пользователь просматривает текущую страницу.
'REMOTE_HOST'
Удалённый хост, с которого пользователь просматривает текущую страницу. Обратный поиск DNS основан на значении переменной REMOTE_ADDR.

Замечание: Сервер потребуется настроить, чтобы создавать эту переменную. Например, для веб-сервера Apache потребуется указать директиву HostnameLookups On в файле httpd.conf, чтобы эта переменная создавалась. Смотрите также описание функции gethostbyaddr().

'REMOTE_PORT'
Порт на удалённой машине, на котором устанавливается соединение с сервером.
'REMOTE_USER'
Аутентифицированный пользователь.
'REDIRECT_REMOTE_USER'
Аутентифицированный пользователь, если запрос перенаправлен изнутри.
'SCRIPT_FILENAME'

Абсолютный путь к исполняемому скрипту.

Замечание:

Переменная $_SERVER['SCRIPT_FILENAME'] содержит относительный путь, который указал пользователь, если скрипт запустили в командной строке (CLI) по относительному пути наподобие file.php или ../file.php.

'SERVER_ADMIN'
Значение директивы SERVER_ADMIN веб-сервера Apache, которое указали в конфигурационном файле сервера. При запуске скрипта на виртуальном хосте значение определяется для этого виртуального хоста.
'SERVER_PORT'
Порт, на котором сервер принимает запросы. При стандартной конфигурации сервера переменная содержит значение '80'; для соединений по протоколу SSL, например, значение переменной соответствует порту, который определили для защищённых HTTP-соединений.

Замечание: На веб-сервере Apache 2 потребуется установить директивы установить UseCanonicalName = On и UseCanonicalPhysicalPort = On, чтобы получить реальный физический порт, иначе значение подделают и переменная не вернёт реальное значение физического порта. В контекстах, которые требуют усиленной безопасности, полагаться на это значение небезопасно.

'SERVER_SIGNATURE'
Строка, которая содержит версию сервера и имя виртуального хоста. Эта информация добавляются на страницы, которые генерирует сервер, если в конфигурации сервера включили директиву, которая отвечает за добавление такой строки.
'PATH_TRANSLATED'
Путь к текущему скрипту после выполнения сервером сопоставления virtual-to-real. Путь строится на основе файловой системы, а не на основе корневого каталога сервера.

Замечание: Пользователи Apache 2 включают директиву AcceptPathInfo = On в конфигурационном файле httpd.conf, чтобы определить значение переменной PATH_INFO.

'SCRIPT_NAME'
Путь к текущему исполняемому скрипту. Переменная полезна на страницах, которым требуется указывать на самих себя. Полный путь и название текущего включаемого файла содержит константа __FILE__.
'REQUEST_URI'
URI-идентификатор наподобие '/index.html', который указали для доступа к странице.
'PHP_AUTH_DIGEST'
При HTTP-аутентификации по дайджесту переменной присваивается значение заголовка 'Authorization', который отправил клиент и которое затем проверяют.
'PHP_AUTH_USER'
При выполнении HTTP-аутентификации переменной присваивается имя пользователя, которое предоставил пользователь.
'PHP_AUTH_PW'
При выполнении HTTP-аутентификации переменной присваивается пароль, которое предоставил пользователь.
'AUTH_TYPE'
При выполнении HTTP-аутентификации переменной присваивается тип аутентификации, который сервер устанавливает на основе клиентских данных.
'PATH_INFO'
Содержит информацию о пути, которую предоставил клиент. Значение идёт после фактического названия скрипта, но до строки запроса, если строку запроса указали. Переменная $_SERVER['PATH_INFO'] получит значение /some/stuff, если текущий скрипт запросили по URL-адресу наподобие http://www.example.com/php/path_info.php/some/stuff?foo=bar.
'ORIG_PATH_INFO'
Исходное значение переменной 'PATH_INFO' перед обработкой PHP.

Примеры

Пример #1 Пример вывода значения переменной $_SERVER

<?php

echo $_SERVER['SERVER_NAME'];

?>

Вывод приведённого примера будет похож на:

www.example.com

Примечания

Замечание:

Это «суперглобальная», или автоматическая глобальная, переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также