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

Замечание:

PHP-скрипт завершается после отправки заголовков (то есть после того, как осуществляется любой вывод без буферизации вывода), если метод запроса был HEAD.

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

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

Замечание:

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

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

Замечание: Чтобы получить физический (реальный) порт в Apache 2, необходимо установить UseCanonicalName = On и UseCanonicalPhysicalPort = On, иначе это значение может быть подменено и не вернуть реальной значение физического порта. Полагаться на это значение небезопасно в контексте приложений, требующих усиленной безопасности.

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

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

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

Примеры

Пример #1 Пример использования $_SERVER

<?php
echo $_SERVER['SERVER_NAME'];
?>

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

www.example.com

Примечания

Замечание:

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

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