$_SERVER
$HTTP_SERVER_VARS [удалено]
(PHP 4 >= 4.1.0, PHP 5, PHP 7)
$_SERVER -- $HTTP_SERVER_VARS [удалено] — Информация о сервере и среде исполнения
Описание
Переменная $_SERVER - это массив, содержащий информацию,
такую как заголовки, пути и местоположения скриптов. Записи в этом массиве
создаются веб-сервером. Нет гарантии, что
каждый веб-сервер предоставит любую из них; сервер может опустить некоторые из них
или предоставить другие, не указанные здесь. Тем не менее, многие
эти переменные присутствуют в » спецификации CGI/1.1, так что
вы можете ожидать их реализации и в конкретном веб-сервере.
Замечание:
До версии PHP 5.4.0, $HTTP_SERVER_VARS содержит ту же
начальную информацию, но она не суперглобальная.
(Заметьте, что $HTTP_SERVER_VARS и
$_SERVER являются разными переменными, так что PHP
обрабатывает их соответственно).
Индексы
Вы можете найти (а можете и не найти) любой из следующих элементов в массиве
$_SERVER. Заметьте, что немногие элементы, если вобще такие найдутся,
будут доступны (или действительно будут иметь значение),
если PHP запущен в командной строке.
-
'PHP_SELF'
-
Имя файла скрипта, который сейчас выполняется, относительно
корня документов. Например,$_SERVER['PHP_SELF'] в скрипте
по адресу http://example.com/foo/bar.php
будет /foo/bar.php.
Константа __FILE__
содержит полный путь и имя файла текущего (то есть
подключенного) файла.
Если PHP запущен в командной строке, эта переменная содержит
имя скрипта, начиная с PHP 4.3.0. Раньше она была недоступна.
-
'argv'
-
Массив агрументов, переданных скрипту. Когда скрипт
запущен в командой строке, это дает C-подобный доступ
к параметрам командной строки. Когда вызывается через метод GET,
этот массив будет содержать строку запроса.
-
'argc'
-
Содержит количество параметров, переданных скрипту
(если запуск произведен в командной строке).
-
'GATEWAY_INTERFACE'
-
Содержит используемую сервером версию спецификации CGI;
к примеру'CGI/1.1'.
-
'SERVER_ADDR'
-
IP адрес сервера, на котором выполняется текущий скрипт.
-
'SERVER_NAME'
-
Имя хоста, на котором выполняется текущий скрипт.
Если скрипт выполняется на виртуальном хосте,
здесь будет содержатся имя, определенное для этого виртуального хоста.
Замечание:
Под Apache 2, вы должны выставить UseCanonicalName = On и
ServerName.
Under Apache 2, you must set UseCanonicalName = On
and ServerName. Иначе, это значение отразит имя хоста
клиента и может быть подделано.
Это не безопасно полагаться на это значение в контексте требующем безопасности.
-
'SERVER_SOFTWARE'
-
Строка идентификации сервера, указанная в заголовках,
когда происходит ответ на запрос.
-
'SERVER_PROTOCOL'
-
Имя и версия информационного протокола, через который
была запрошена страница; к примеру 'HTTP/1.0';
-
'REQUEST_METHOD'
-
Какой метод был использован для запроса страницы; к примеру 'GET',
'HEAD', 'POST', 'PUT'.
Замечание:
PHP скрипт завершается после посылки заголовков (тоесть после того, как
осуществляет любой вывод без буферизации вывода), если запрос был осуществлен
методом HEAD.
-
'REQUEST_TIME'
-
Временная метка начала запроса. Доступна, начиная с PHP 5.1.0.
-
'REQUEST_TIME_FLOAT'
-
Временная метка начала запроса с точностью до микросекунд.
Доступна, начиная с PHP 5.4.0.
-
'QUERY_STRING'
-
Строка запросов, если есть, с помощью которой была получена страница.
-
'DOCUMENT_ROOT'
-
Директория корня документов, в которой выполняется текущий скрипт,
в точности та, которая указана в конфигурационном файле сервера.
-
'HTTP_ACCEPT'
-
Содержимое заголовка Accept: из текущего запроса,
если он есть.
-
'HTTP_ACCEPT_CHARSET'
-
Содержимое заголовка Accept-Charset: из
текущего запроса, если он есть. Например:
'iso-8859-1,*,utf-8'.
-
'HTTP_ACCEPT_ENCODING'
-
Содержимое заголовка Accept-Encoding: из
текущего запроса, если он есть. Например: 'gzip'.
-
'HTTP_ACCEPT_LANGUAGE'
-
Содержимое заголовка Accept-Language: из
текущего запроса, если он есть. Например: 'en'.
-
'HTTP_CONNECTION'
-
Содержимое заголовка Connection: из
текущего запроса, если он есть. Например: 'Keep-Alive'.
-
'HTTP_HOST'
-
Содержимое заголовка Host: из
текущего запроса, если он есть.
-
'HTTP_REFERER'
-
Адрес страницы (если есть), которая привела браузер пользователя на эту страницу.
Этот заголовок устанавливается веб-браузером пользователя.
Не все браузеры устанавливают его и некоторые в качестве дополнительной
возможности позволяют изменять содержимое заголовка
HTTP_REFERER. Одним словом, в самом деле ему нельзя доверять.
-
'HTTP_USER_AGENT'
-
Содержимое заголовка User-Agent: из
текущего запроса, если он есть. Эта строка содержит обозначение
браузера, которым пользователь запросил данную страницу. Типичным
примером является строка: Mozilla/4.5 [en] (X11; U;
Linux 2.2.9 i586). Среди прочего, вы можете
использовать это значение с функцией get_browser()
чтобы адаптировать вывод вашей страницы к возможностям браузера пользователя
-
'HTTPS'
-
Принимает непустое значение, если запрос был произведен через протокол HTTPS.
Замечание:
Обратите внимание, что при использовании ISAPI с IIS значение будет
off, если запрос не был произведен через протокол 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';
используя SLL, например, это значение будет таким, какое сконфигурировано
для соединений безопасного HTTP.
Замечание:
Чтобы получить физический (реальный) порт в Apache 2, необходимо
установить UseCanonicalName = On и
UseCanonicalPhysicalPort = On, иначе это значение
может быть подменено и не вернуть реальной значение физического порта.
Полагаться на это значение небезопасно в контексте приложений, требующих
усиленной безопасности.
-
'SERVER_SIGNATURE'
-
Строка, содержащая версию сервера и имя виртуального хоста, которые
добавляются к генерируемым сервером страницам, если включено.
-
'PATH_TRANSLATED'
-
Filesystem- (not document root-) based path to the current
script, after the server has done any virtual-to-real
mapping.
Замечание:
Начиная с PHP 4.3.2, переменная PATH_TRANSLATED больше
не устанавливается неявно в Apache 2 SAPI, по сравнению
с Apache версии 1, где она устанавливается в то же самое значение, что
и переменная SCRIPT_FILENAME, когда она не используется Apache.
Это изменение было сделано для соответствия спецификации CGI, где
переменная PATH_TRANSLATED должна существовать только тогда, когда
PATH_INFO определена.
Пользователи 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; для доступа к ней внутри метода или функции.