Суперглобальные переменные в PHP

Sunday, 31 January 2010 | Автор: programmer

В прошлой статье мы рассмотрели создание глобальных и локальных переменных. Сейчас рассмотрим работу суперглобальных переменных в PHP.

В PHP существует несколько суперглобальных переменных, а точнее суперглобальных массивов:

  • $_SERVER
  • $_GET
  • $_POST
  • $_FILES
  • $_COOKIE
  • $_SESSION
  • $_REQUEST
  • $_ENV

Суперглобальный массив $_SERVER

Массив представляет собой информацию о заголовках, путях и размещении скриптов. Записи в этом массиве создаются веб-сервером. Не существует гарантий, что веб-сервер сформирует этот массив со всеми параметрами. Данный массив содержит следующие элементы:

 

PHP_SELF: имя файла в настоящее время выполняемого PHP-скрипта. Например при выполненнии скрипта http://phpprogs.ru/test/guestbook2/ данный элемент будет принимать значение /test/guestbook2/index.php.

argv: список аргументов, передаваемых скрипту. Если использует в командной строке, то получаете массив значений, если используется $_GET, то будет содержать строку запроса.

argc: содержит число параметров передаваемых сценарию (если запуск был из командной строки).

GATEWAY_INTERFACE: параметр возвращает версию CGI, которую использует веб-сервер.

SERVER_ADDR: элемент содержит IP адрес сервера, где выполняется скрипт.

SERVER_NAME: элемент содержит имя веб-сервера, где выполняется скрипт.

SERVER_SOFTWARE: идентификационная строка веб-сервера, которая возвращается в ответах при запросах.

SERVER_PROTOCOL: имя и версия используемого протокола HTTP.

REQUEST_METHOD: используемый метод запроса к веб-серверу (POST, GET, HEAD, 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_ACCEPT_CONNECTION: содержание заголовка ACCEPT-CONNECTION, если он есть. Например  'Keep-Alive'.

HTTP_HOST: содержание заголовка HOST, есть он есть.

HTTP_REFERER: адрес страницы, которую на текущую страницу передало программное обеспечение пользователя. Не все ПО пользователя передает этот параметр, а некоторое ПО даже изменяет его. Т.о. данному параметру доверять нельзя.

HTTP_USER_AGENT: этот параметр содержит инфорацию о клиенте пользователя (ПО пользователя), которое обращается к странице. Например 'Mozilla/4.5 [RU] (X11; U; Linux 2.2.9 i586). Также эту информацию Вы можете получить из функции get_browser().

HTTPS: параметр содержит информацию, если запросы был сделан через HTTP.

REMOTE_ADDR: IP адрес пользователя, с которого он просматривает страницу.

REMOTE_HOST: имя хоста пользователя, с которого он просматривает данную страницу.

REMOTE_POST: порт, используемый для соединения с веб-сервром.

SCRIPT_FILENAME: абсолютный путь до текущег оскрипта.

SERVER_ADMIN: значение SERVER_ADMIN, взятое из конфигурационного файла Apache.

SERVER_PORT: порт веб-сервера, используемый для передачи данных по HTTP. По умолчанию 80.

SERVER_SIGNATURE: строка, содержащая версию веб-сервера и имя виртуального хоста.

PATH_TRANSLATED: базовый путь к текущему сценарию.

SCRIPT_NAME: содержит путь и имя текущего скрипта.

REQUEST_URI: URI для текущей страницы.

PHP_AUTH_DIGEST: если PHP работает как модуль Apache, то параметр используется в качестве аутентификации по протоколу HTTP для проверки подлинности.

PHP_AUTH_USER: если PHP работает как модуль Apache или IIS, то параметр содержит имя пользователя при аутентификации по протоколу HTTP.

PHP_AUTH_PW: если PHP работает как модуль Apache или IIS, то параметр содержит пароль пользователя при аутентификации по протоколу HTTP.

AUTH_TYPE: если PHP работает как модуль Apache или IIS, то параметр содержит тип аутентификации по протоколу HTTP.

 

Суперглобальный массив $_GET

Массив $_GET представляет собой ассоциативный массив элементов, передаваемых посредством HTTP GET запросов текущему PHP-скрипту. Нет необходимости объявлять массив $_GET внутри пользовательских функций командой "global $_GET;", т.к. данный массив является суперглобальным.

 

 

Суперглобальный массив $_POST

Массив $_POST представляет собой ассоциативный массив элементов, передаваемых посредством HTTP POST запросов текущему PHP-скрипту. Нет необходимости объявлять массив $_POST внутри пользовательских функций командой "global $_POST;", т.к. данный массив является суперглобальным.

 

Суперглобальный массив $_FILES

Массив $_FILES представляет собой ассоциативный массив элементов, передаваемых посредством HTTP POST запросов текущему PHP-скрипту. Нет необходимости объявлять массив $_FILES внутри пользовательских функций командой "global $_FILES;", т.к. данный массив является суперглобальным.

 

Суперглобальный массив $_COOKIE

Массив $_COOKIE представляет собой ассоциативный массив элементов, передаваемых посредством HTTP COOKIE запросов текущему PHP-скрипту. Нет необходимости объявлять массив $_COOKIE внутри пользовательских функций командой "global $_COOKIE;", т.к. данный массив является суперглобальным.

 

Суперглобальный массив $_SESSION

Данный ассоциативный массив содержит переменные сессии, доступные для данного скрипта. Нет необходимости объявлять массив $_SESSION внутри пользовательских функций командой "global $_SESSION;", т.к. данный массив является суперглобальным.

 

Суперглобальный массив $_REQUEST

Массив $_REQUEST является объединенным ассоциативным массивом, который включает в себя массивы $_GET, $_POST, $_FILES. Нет необходимости объявлять массив $_REQUEST  внутри пользовательских функций командой "global $_REQUEST;", т.к. данный массив является суперглобальным.

 

Суперглобальный массив $_ENV

$_ENV представляет собой ассоциативный массив, содержащий значения переменных из среды, в которой работает интерпретатор PHP. Нет необходимости объявлять массив $_ENV внутри пользовательских функций командой "global $_ENV;", т.к. данный массив является суперглобальным.

 

 


 
Tweet


Категория(и): Изучаем PHP
Добавить комментарий
Чтобы оставить комментарий, Вам необходимо зарегистрироваться или авторизироваться