Лекция
Привет, Вы узнаете о том , что такое серверные переменные $_server в php , Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое серверные переменные $_server в php , настоятельно рекомендую прочитать все из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend) .
Примечание: Впервые появилась в PHP версии 4.1.0. В более ранних версиях используется переменная$HTTP_SERVER_VARS.
$_SERVER - это суперглобальный массив, содержащий такую информацию, как заголовки, пути, размещение скриптов. Данный массив создается веб-сервером. Нет никиких гарантий, что веб-сервер снабдит данный суперглобальный массив всей предопределенной информацией. За детельной информацией по переменным, содержащихся в данном суперглобальном массиве, обратитесь к спецификации CGI 1.1.
Суперглобальные переменные доступны внутри пользовательских функций. То есть вам не нужно объявлять суперглобальные переменные глобальными внутри пользовательских функций, делая что-то вроде этого: global $_SERVER
. На это не влияют даже настойки конфигурации PHP (php.ini).
Переменная $HTTP_SERVER_VARS содержит ту же самую начальную информацию, но она не является автоглобальной переменной. (Заметьте, что $HTTP_SERVER_VARS и $_SERVER - это различные переменные).
Вы можете не найти некоторый переменные, которые могут содержаться в массиве $_SERVER, если вы запускаете PHP из коммандной строки.
PHP_SELF
Имя файла в настоящее время выполняющегося сценария, относительно корня документа. Например, $_SERVER ['PHP_SELF'] в сценарии при адресе http://example.com/test.php/foo.bar
возвращает /test.php/foo.bar
. Предопределенная константа __FILE__ содержит полный путь и имя файла.
Если PHP выполняется из командной строки, эта переменная содержит имя сценария (доступно, начиная с PHP 4.3.0).
argv
Массив параметров, переданных сценарию. При использовании метода GET, он будет содержать строку запроса.
argc
Содержит номер параметров командной строки, переданных сценарию (если они переданы из командной строки).
GATEWAY_INTERFACE
Содержит версию CGI, которую использует веб-сервер (Например, CGI/1.1).
SERVER_NAME
Имя веб-сервера, под которым текущий скрипт выполняется. Если скрипт исполняется на виртуальном веб-сервере, переменная будет содержать имя веб-сервера, которое было определено для виртуального веб-сервера.
SERVER_SOFTWARE
Идентификационная строка веб-сервера, которая передается через заголовки при ответах на запросы сервера.
SERVER_PROTOCOL
Имя и версия используемого протокола HTTP (Например, HTTP/1.1).
REQUEST_METHOD
Используемый метод запроса веб-страницы ( 'GET', 'HEAD', 'POST', 'PUT' ).
REQUEST_TIME
Время начала запроса веб-страницы. Доступна, начиная с PHP 5.1.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'. Об этом говорит сайт https://intellect.icu . Эта строка содержит информацию о пользовательском клиенте (программное обеспечение клиента), который обращается к странице. Типичный пример: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Для получения подобной информации вы также можете использовать функцию get_browser()
REMOTE_ADDR
IP-адрес удаленного пользователя, который обращается к текущей странице.
REMOTE_HOST
Имя хоста удаленного пользователя, который обращается к текущей странице. Реверсивный поиск DNS базируется наREMOTE_ADDR удаленного пользователя. Примечание: веб-сервер должен поддерживать создание данной переменной. Например, в Apache опция HostnameLookups должна быть включена в конфигурационном файле httpd.conf (On). Смотрите также: gethostbyaddr()
REMOTE_PORT
Порт, используемый для соединения с веб-сервером
SCRIPT_FILENAME
Абсолютный путь для текущего скрипта.
SERVER_ADMIN
Значение, задаваемое SERVER_ADMIN (для Apache). Определяется директивой конфигурации веб-сервера. Если скрипт исполняется на виртуальном хосте, то значение определяется текущими настройками виртуального хоста веб-сервера.
SERVER_PORT
Текущий порт веб-сервера, используемы для предечи данных по протоколу HTTP. По-умолчанию '80'.
SERVER_SINGATURE
Строка, содержащая версию веб-сервера или имя виртуального хоста.
PATH_TRANSLATED
Базовый путь к текущему сценарию.
SCRIPT_NAME
Содержит путь и имя файла текущего исполняемого скрипта.
REQUEST_URI
URI для текущей страницы, например, '/index.html'.
PHP_AUTH_DIGEST
Если PHP работает как модуль Apache, переменная используется в аутентификации по протоколу HTTP, для проверки подлинности.
PHP_AUTH_USER
Если PHP работает как модуль Apache, либо как ISAPI IIS, данная переменная содержит имя авторизируемого пользователя при аутентификации по протоколу HTTP.
PHP_AUTH_PW
Если PHP работает как модуль Apache, либо как ISAPI IIS, данная переменная содержит пароль авторизируемого пользователя при аутентификации по протоколу HTTP.
AUTH_TYPE
Если PHP работает как модуль Apache, либо как ISAPI IIS, данная переменная содержит тип используемой аутентификации по протоколу HTTP.
Переменные окружения $_ENV
Доступны, начиная с PHP версии 4.1.0. В более ранних версиях PHP используйте $HTTP_ENV_VARS.
Эти переменные импортируются в глобальное пространство имен PHP, из среды, в которой работает интерпретатор PHP. Число и типы переменных зависят от оболочки, в которой работает PHP, поэтому список этих переменных привести невозможно. Смотрите документацию по оболочке, которую вы используете, чтобы ознакомиться со списком ваших переменных окружения.
Некоторые переменные окружения содержатся в переменных CGI, если вы используете PHP как CGI.
Переменные окружения $_ENV доступны внутри пользовательских функций. То есть вам не нужно объявлять суперглобальные переменные глобальными внутри пользовательских функций, делая что-то вроде этого: global $_ENV
. На это не влияют даже настойки конфигурации PHP (php.ini).
Переменная $HTTP_ENV_VARS содержит ту же самую начальную информацию, но она не является автоглобальной переменной. (Заметьте, что $HTTP_ENV_VARS и $_ENV - это различные переменные).
HTTP Cookies: $_COOKIE
Доступны, начиная с PHP версии 4.1.0. В более ранних версиях PHP используйте $HTTP_COOKIE_VARS
Ассоциативный массив переменных, передаваемый текущему сценарию посредством HTTP Cookies.
Переменные HTTP Cookies доступны внутри пользовательских функций. То есть вам не нужно объявлять суперглобальные переменные глобальными внутри пользовательских функций, делая что-то вроде этого: global $_COOKIE
. На это не влияют даже настойки конфигурации PHP (php.ini).
Переменная $HTTP_COOKIE_VARS содержит ту же самую начальную информацию, но она не является автоглобальной переменной. (Заметьте, что $HTTP_COOKIE_VARS и $_COOKIE - это различные переменные).
HTTP GET переменные: $_GET
Доступны, начиная с PHP версии 4.1.0. В более ранних версиях PHP используйте $HTTP_GET_VARS.
Ассоциативный массив переменных, передаваемый текущему сценарию посредством HTTP GET запросов.
Переменные HTTP GET доступны внутри пользовательских функций. То есть вам не нужно объявлять суперглобальные переменные глобальными внутри пользовательских функций, делая что-то вроде этого: global $_GET
. На это не влияют даже настойки конфигурации PHP (php.ini).
Переменная $HTTP_GET_VARS содержит ту же самую начальную информацию, но она не является автоглобальной переменной. (Заметьте, что $HTTP_GET_VARS и $_GET - это различные переменные).
HTTP POST переменные: $_POST
Доступны, начиная с PHP версии 4.1.0. В более ранних версиях PHP используйте $HTTP_POST_VARS.
Ассоциативный массив переменных, передаваемый текущему сценарию посредством HTTP POST запросов.
Переменные HTTP POST доступны внутри пользовательских функций. То есть вам не нужно объявлять суперглобальные переменные глобальными внутри пользовательских функций, делая что-то вроде этого: global $_POST
. На это не влияют даже настойки конфигурации PHP (php.ini).
Переменная $HTTP_POST_VARS содержит ту же самую начальную информацию, но она не является автоглобальной переменной. (Заметьте, что $HTTP_POST_VARS и $_POST - это различные переменные).
Переменные File Uploads HTTP: $_FILES
Доступны, начиная с PHP версии 4.1.0. В более ранних версиях PHP используйте $HTTP_POST_FILES.
Ассоциативный массив переменных, передаваемый текущему сценарию посредством HTTP POST запросов.
Переменные HTTP POST доступны внутри пользовательских функций. То есть вам не нужно объявлять суперглобальные переменные глобальными внутри пользовательских функций, делая что-то вроде этого: global $_FILES
. На это не влияют даже настойки конфигурации PHP (php.ini).
Переменная $HTTP_POST_FILES содержит ту же самую начальную информацию, но она не является автоглобальной переменной. (Заметьте, что $HTTP_POST_FILES и $_FILES - это различные переменные).
Переменные запросов: $_REQUEST
Доступны, начиная с PHP версии 4.1.0. В более ранних версиях PHP не имеет эквивалентов. Начиная с PHP версии 4.3.0$_REQUEST включает также $_FILES.
Ассоциативный массив, содержащий $_GET, $_POST, and $_COOKIE
Переменные запросов $_REQUEST доступны внутри пользовательских функций. То есть вам не нужно объявлять суперглобальные переменные глобальными внутри пользовательских функций, делая что-то вроде этого: global $_REQUEST
. На это не влияют даже настойки конфигурации PHP (php.ini).
Переменные сессий $_SESSION
Доступны, начиная с PHP версии 4.1.0. В более ранних версиях PHP используйте $HTTP_SESSION_VARS.
Ассоциативный массив, содержащий переменные сессий, доступные для текущего скрипта. Для получения дополнительной информации, смотрите функции для работы с сессиями.
Переменные сессий доступны внутри пользовательских функций. То есть вам не нужно объявлять суперглобальные переменные глобальными внутри пользовательских функций, делая что-то вроде этого: global $_SESSION
. На это не влияют даже настойки конфигурации PHP (php.ini).
Переменная $HTTP_SESSION_VARS содержит ту же самую начальную информацию, но она не является автоглобальной переменной. (Заметьте, что $HTTP_SESSION_VARS и $_SESSION - это различные переменные).
Глобальные переменные: $GLOBALS
Глобальные переменные доступны, начиная с PHP3.
Ассоциативный массив, содержащий ссылки на все переменные, которые в настоящее время определены в глобальной области сценария. Имена переменных - ключи массива.
Глобальные переменные доступны внутри пользовательских функций. То есть вам не нужно объявлять суперглобальные переменные глобальными внутри пользовательских функций, делая что-то вроде этого: global $GLOBALS
. На это не влияют даже настойки конфигурации PHP (php.ini).
Сообщение последней ошибки PHP сценария: $php_errormsg
Переменная $php_errormsg содержит сообщение последней ошибки PHP скрипта.
Эта переменная будет доступна только в пределах области, в которой произошла ошибка, и только если опцияtrack_errors конфигурации включена (по умолчанию она отключена).
В заключение, эта статья об серверные переменные $_server в php подчеркивает важность того что вы тут, расширяете ваше сознание, знания, навыки и умения. Надеюсь, что теперь ты понял что такое серверные переменные $_server в php и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)
Комментарии
Оставить комментарий
Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)
Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)