$_SERVER — это массив, содержащий такую информацию, как заголовки, пути и расположение скриптов. Записи в этом массиве создаются веб-сервером. Нет никакой гарантии, что каждый веб-сервер предоставит что-либо из этого; серверы могут опускать некоторые или предоставлять другие, не перечисленные здесь. Тем не менее, большое количество этих переменных учитывается в спецификации » CGI/1.1 , так что вы можете их ожидать.
Вы можете найти или не найти любой из следующих элементов в $_SERVER . Обратите внимание, что некоторые из них, если таковые имеются, будут доступны (или действительно будут иметь какое-либо значение) при запуске PHP в командной строке .
' 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'
Корневой каталог документа, в котором выполняется текущий сценарий, как определено в файле конфигурации сервера.
'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.
'REMOTE_ADDR'
IP-адрес, с которого пользователь просматривает текущую страницу.
'REMOTE_HOST'
Имя хоста, с которого пользователь просматривает текущую страницу. Обратный поиск DNS основан на REMOTE_ADDR пользователя.
Примечание . Ваш веб-сервер должен быть настроен для создания этой переменной. Например, в Apache вам понадобится
HostnameLookups On
httpd.conf , чтобы он существовал.
' REMOTE_PORT '
Порт, используемый на компьютере пользователя для связи с веб-сервером.
'REMOTE_USER'
Аутентифицированный пользователь.
' REDIRECT_REMOTE_USER '
Аутентифицированный пользователь, если запрос перенаправляется внутренне.
' SCRIPT_FILENAME '
Абсолютный путь к выполняемому в данный момент скрипту.
Примечание :
Если сценарий выполняется с помощью CLI, в качестве относительного пути, например, file.php или ../file.php , $_SERVER['SCRIPT_FILENAME'] будет содержать относительный путь, указанный пользователем.
'SERVER_ADMIN'
Значение, присвоенное директиве SERVER_ADMIN (для Apache) в файле конфигурации веб-сервера. Если сценарий выполняется на виртуальном хосте, это значение будет определено для этого виртуального хоста.
'SERVER_PORT'
Порт на серверной машине, используемый веб-сервером для связи. Для настроек по умолчанию это будет ' 80
'; использование SSL, например, изменит это на любой определенный вами безопасный HTTP-порт.
Примечание : Под Apache 2 необходимо установить
UseCanonicalName = On
, а такжеUseCanonicalPhysicalPort = On
для того, чтобы получить физический (реальный) порт, иначе это значение может быть подделано и оно может возвращать или не возвращать значение физического порта. Небезопасно полагаться на это значение в контекстах, зависящих от безопасности.
'SERVER_SIGNATURE'
Строка, содержащая версию сервера и имя виртуального хоста, которые добавляются к сгенерированным сервером страницам, если они включены.
'PATH_TRANSLATED'
Путь к текущему сценарию на основе файловой системы (не корня документа) после того, как сервер выполнил какое-либо сопоставление виртуального и реального.
Примечание . Пользователи Apache 2 могут использовать
AcceptPathInfo = On
внутри httpd.conf для определения PATH_INFO .
'SCRIPT_NAME'
Содержит путь к текущему сценарию. Это полезно для страниц, которые должны указывать сами на себя. Константа __FILE__ содержит полный путь и имя текущего (т.е. включенного) файла.
'REQUEST_URI'
URI, который был предоставлен для доступа к этой странице; например, ' /index.html
'.
' PHP_AUTH_DIGEST '
При выполнении дайджест-аутентификации HTTP эта переменная устанавливается в заголовок «Авторизация», отправленный клиентом (который затем следует использовать для соответствующей проверки).
' 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
0 комментариев