$_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'];
?>
Вывод приведённого примера будет похож на:
Примечания
Замечание:
Это «суперглобальная»,
или автоматическая глобальная, переменная. Это просто означает, что она доступна во всех контекстах скрипта.
Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.