$_SERVER
PHP Manual
PHP Manual»Предопределённые переменные»$_SERVER

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

Метка времени, когда PHP начал обработку запроса.

'REQUEST_TIME_FLOAT'

Метка времени, когда PHP начал обработку запроса, с точностью до микросекунд.

'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; для доступа к глобальной переменной внутри метода или функции не требуется.

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

To Top