(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'].
Название файла скрипта, который выполняется в текущий момент, относительно корня документов. Например, переменная $_SERVER['PHP_SELF'] в скрипте по адресу http://example.com/foo/bar.php примет значение /foo/bar.php. Константа __FILE__ содержит полный путь и название файла текущего (то есть подключённого) файла.
Переменная содержит название скрипта, если PHP запустили в командной строке.
Массив аргументов, которые передали скрипту. При запуске скрипта в командой строке это даёт C-подобный доступ к параметрам командной строки. При вызове через метод GET этот массив содержит строку запроса.
Содержит количество параметров, которые передали скрипту, если скрипт запустили в командной строке.
Содержит используемую сервером версию спецификации CGI-интерфейса;
например 'CGI/1.1'..
IP-адрес сервера, по которому выполняется текущий скрипт.
Имя хоста, на котором выполняется текущий скрипт. Переменная содержит имя, которое определили для виртуального хоста, если скрипт выполняется на виртуальном хосте.
Замечание:
В Apache 2 потребуется установить директивы
UseCanonicalName = OnиServerName, иначе значение отразит имя хоста, которое предоставил клиент и которое подделывают злоумышленники. Небезопасно полагаться на это значение в контексте, который требует безопасности.
Строка идентификации сервера, указанная в заголовках, когда происходит ответ на запрос.
Имя и версия информационного протокола, через который
запросили страницу; например 'HTTP/1.0';
Метод, которым запросили страницу; например 'GET',
'HEAD', 'POST', 'PUT'.
Замечание:
При запросе методом
HEADPHP-скрипт завершается после отправки заголовков — после любого вывода без буферизации вывода.
Метка времени, когда PHP начал обработку запроса.
Метка времени, когда PHP начал обработку запроса, с точностью до микросекунд.
Строка запроса, если адрес содержит такую, через которую получили доступ к странице.
Директория корня документов, в которой выполняется текущий скрипт, в точности та, которую указали в конфигурационном файле сервера.
Принимает непустое значение, если запрос выполнили через протокол HTTPS.
IP-адрес, с которого пользователь просматривает текущую страницу.
Удалённый хост, с которого пользователь просматривает текущую страницу. Обратный поиск DNS основан на значении переменной REMOTE_ADDR.
Замечание:
Сервер потребуется настроить, чтобы создавать эту переменную. Например, для веб-сервера Apache потребуется указать директиву
HostnameLookups Onв файле httpd.conf, чтобы эта переменная создавалась. Смотрите также описание функции gethostbyaddr().
Порт на удалённой машине, на котором устанавливается соединение с сервером.
Аутентифицированный пользователь.
Аутентифицированный пользователь, если запрос перенаправлен изнутри.
Абсолютный путь к исполняемому скрипту.
Замечание:
Переменная $_SERVER['SCRIPT_FILENAME'] содержит относительный путь, который указал пользователь, если скрипт запустили в командной строке (CLI) по относительному пути наподобие file.php или ../file.php.
Значение директивы SERVER_ADMIN веб-сервера Apache, которое указали в конфигурационном файле сервера. При запуске скрипта на виртуальном хосте значение определяется для этого виртуального хоста.
Порт, на котором сервер принимает запросы.
При стандартной конфигурации сервера переменная содержит значение '80';
для соединений по протоколу SSL, например, значение переменной соответствует
порту, который определили для защищённых HTTP-соединений.
Замечание:
На веб-сервере Apache 2 потребуется установить директивы установить
UseCanonicalName = OnиUseCanonicalPhysicalPort = On, чтобы получить реальный физический порт, иначе значение подделают и переменная не вернёт реальное значение физического порта. В контекстах, которые требуют усиленной безопасности, полагаться на это значение небезопасно.
Строка, которая содержит версию сервера и имя виртуального хоста. Эта информация добавляются на страницы, которые генерирует сервер, если в конфигурации сервера включили директиву, которая отвечает за добавление такой строки.
Путь к текущему скрипту после выполнения сервером сопоставления virtual-to-real. Путь строится на основе файловой системы, а не на основе корневого каталога сервера.
Замечание:
Пользователи Apache 2 включают директиву
AcceptPathInfo = Onв конфигурационном файле httpd.conf, чтобы определить значение переменной PATH_INFO.
Путь к текущему исполняемому скрипту. Переменная полезна на страницах, которым требуется указывать на самих себя. Полный путь и название текущего включаемого файла содержит константа __FILE__.
URI-идентификатор наподобие '/index.html',
который указали для доступа к странице.
При HTTP-аутентификации по дайджесту переменной присваивается значение заголовка 'Authorization', который отправил клиент и которое затем проверяют.
При выполнении HTTP-аутентификации переменной присваивается имя пользователя, которое предоставил пользователь.
При выполнении HTTP-аутентификации переменной присваивается пароль, которое предоставил пользователь.
При выполнении HTTP-аутентификации переменной присваивается тип аутентификации, который сервер устанавливает на основе клиентских данных.
Содержит информацию о пути, которую предоставил клиент. Значение идёт
после фактического названия скрипта, но до строки запроса, если строку запроса указали.
Переменная $_SERVER['PATH_INFO'] получит значение
/some/stuff,
если текущий скрипт запросили по URL-адресу наподобие
http://www.example.com/php/path_info.php/some/stuff?foo=bar.
Исходное значение переменной 'PATH_INFO' перед обработкой PHP.
Пример #1 Пример вывода значения переменной $_SERVER
<?php
echo $_SERVER['SERVER_NAME'];
?>Вывод приведённого примера будет похож на:
www.example.com
Замечание:
Это «суперглобальная», или автоматическая глобальная, переменная. Поэтому переменная доступна во всех контекстах скрипта. Выполнять global $variable; для доступа к глобальной переменной внутри метода или функции не требуется.