Суперглобальные переменные были включены после PHP 4.1.0. Это переменные, которые входят в систему PHP и доступны во всей области действия скрипта.
Несколько суперглобальных переменных предопределены в PHP, что означает, что они доступны во всей области действия скрипта. Вы можете использовать его в функциях и классах без специальных инструкций.
Список суперглобальных переменных PHP:
$ГЛОБАЛЬНЫЕ
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
В этой главе мы объясним несколько часто используемых суперглобальных переменных, а с остальными переменными мы познакомимся в следующих нескольких главах.
$GLOBALS — это суперглобальная группа переменных в PHP, к которой можно получить доступ во всей области действия PHP-скрипта.
$GLOBALS — это глобальный объединенный массив, содержащий все переменные. Имя переменной является ключом массива.
В следующем примере показано, как использовать суперглобальную переменную $GLOBALS:
<?php $х = 75 ; $у = 25 функция ; добавление ( ) { $GLOBALS [ ' z ' ] = $GLOBALS [ ' x ' ] + $GLOBALS [ ' y ' ] } ; дополнение ( ) ; $з ? >
В приведенном выше примере z — это суперглобальная переменная в массиве $GLOBALS, доступ к которой также возможен вне функции.
$_SERVER — это массив, содержащий такую информацию, как заголовок, путь и расположение скриптов. Элементы этого массива создаются веб-сервером. Нет никакой гарантии, что каждый сервер предложит все предметы; серверы могут игнорировать некоторые или обслуживать предметы, не перечисленные здесь.
В следующем примере показано, как использовать элементы в $_SERVER:
<?php эхо $_SERVER [ ' PHP_SELF ' ] эхо ; " <br> " ; эхо $_SERVER [ ' SERVER_NAME ' ] эхо ; " <br> " ; эхо $_SERVER [ ' HTTP_HOST ' ] эхо ; " <br> " ; эхо $_SERVER [ ' HTTP_REFERER ' ] эхо ; " <br> " ; эхо $_SERVER [ ' HTTP_USER_AGENT ' ] эхо ; " <br> " ; эхо $_SERVER [ ' SCRIPT_NAME ' ] ? >;
В следующей таблице перечислены важные элементы всех переменных $_SERVER:
элемент/код | описывать |
---|---|
$_SERVER['PHP_SELF'] | Имя файла выполняемого в данный момент сценария, связанное с корнем документа. Например, использование $_SERVER['PHP_SELF'] в скрипте по адресу http://example.com/test.php/foo.bar приведет к созданию /test.php/foo.bar. Константа __FILE__ содержит полный путь и имя текущего (т. е. содержащего) файла. Начиная с версии PHP 4.3.0, эта переменная будет содержать имя сценария, если PHP работает в режиме командной строки. Эта переменная недоступна в предыдущих версиях. |
$_SERVER['GATEWAY_INTERFACE'] | Версия спецификации CGI, используемая сервером, например «CGI/1.1». |
$_SERVER['SERVER_ADDR'] | IP-адрес сервера, на котором в данный момент выполняется сценарий. |
$_SERVER['SERVER_NAME'] | Имя хоста сервера, на котором в данный момент выполняется сценарий. Если сценарий выполняется на виртуальном хосте, имя определяется значением, установленным для этого виртуального хоста. (например: www.codercto.com) |
$_SERVER['SERVER_SOFTWARE'] | Строка идентификации сервера, указанная в заголовке при ответе на запрос. (например: Apache/2.2.24) |
$_SERVER['SERVER_PROTOCOL'] | Имя и версия протокола связи, используемого при запросе страницы. Например, «HTTP/1.0». |
$_SERVER['REQUEST_METHOD'] | Метод запроса, используемый для доступа к странице; например, «GET», «HEAD», «POST», «PUT». |
$_SERVER['REQUEST_TIME'] | Временная метка начала запроса. Доступно начиная с PHP 5.1.0. (например: 1377687496) |
$_SERVER['QUERY_STRING'] | строка запроса (строка запроса), если таковая имеется, через которую осуществляется доступ к странице. |
$_SERVER['HTTP_ACCEPT'] | Содержимое элемента Accept: в текущем заголовке запроса, если он существует. |
$_SERVER['HTTP_ACCEPT_CHARSET'] | Содержимое элемента Accept-Charset: в текущем заголовке запроса, если он существует. Например: «iso-8859-1,*,utf-8». |
$_SERVER['HTTP_HOST'] | Содержимое поля Host: в текущем заголовке запроса, если оно присутствует. |
$_SERVER['HTTP_REFERER'] | Направляет пользовательский агент на адрес страницы, предшествующей текущей странице, если таковая существует. Определяется настройками пользовательского агента. Не все пользовательские агенты устанавливают этот элемент, а некоторые также предоставляют функцию изменения HTTP_REFERER. Короче говоря, значение не заслуживает доверия. ) |
$_SERVER['HTTPS'] | Установите непустое значение, если доступ к скрипту осуществляется по протоколу HTTPS. |
$_SERVER['REMOTE_ADDR'] | IP-адрес пользователя, просматривающего текущую страницу. |
$_SERVER['REMOTE_HOST'] | Имя хоста пользователя, просматривающего текущую страницу. Обратное разрешение DNS не зависит от REMOTE_ADDR пользователя. |
$_SERVER['REMOTE_PORT'] | Номер порта, используемый на компьютере пользователя для подключения к веб-серверу. |
$_SERVER['SCRIPT_FILENAME'] | Абсолютный путь к исполняемому в данный момент скрипту. |
$_SERVER['SERVER_ADMIN'] | Это значение указывает параметр SERVER_ADMIN в файле конфигурации сервера Apache. Если сценарий выполняется на виртуальном хосте, это значение соответствует значению этого виртуального хоста. (например: кто-то@codercto.com) |
$_SERVER['SERVER_PORT'] | Порт, используемый веб-сервером. Значение по умолчанию — «80». При использовании защищенного соединения SSL это значение представляет собой порт HTTP, установленный пользователем. |
$_SERVER['SERVER_SIGNATURE'] | Строка, содержащая версию сервера и имя виртуального хоста. |
$_SERVER['PATH_TRANSLATED'] | Базовый путь файловой системы (не корень документа), в которой расположен текущий скрипт. Это результат после преобразования виртуального пути сервера в реальный. |
$_SERVER['SCRIPT_NAME'] | Содержит путь к текущему скрипту. Это полезно, когда страница должна указывать на себя. Константа __FILE__ содержит полный путь и имя файла текущего сценария (например, включаемого файла). |
$_SERVER['SCRIPT_URI'] | URI используется для указания страницы, к которой осуществляется доступ. Например, «/index.html». |
PHP $_REQUEST используется для сбора данных, отправленных HTML-формами.
В следующем примере показана форма с полями ввода и кнопками отправки. Когда пользователь отправляет данные формы, нажав кнопку «Отправить», данные формы будут отправлены в файл сценария, указанный в атрибуте действия тега <form>. В этом примере мы указываем файл для обработки данных формы. Если вы хотите, чтобы эти данные обрабатывал другой файл PHP, вы можете изменить указанное имя файла сценария. Затем мы можем использовать суперглобальную переменную $_REQUEST для сбора данных входного поля в форме:
<html><body><form метод="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Имя: <input type="text" name="fname"><input type ="submit"></form><?php $name = $_REQUEST['fname']; echo $name ?></body></html>
PHP $_POST широко используется для сбора данных форм. Укажите этот атрибут в теге формы HTML: "method="post".
В следующем примере показана форма с полями ввода и кнопками отправки. Когда пользователь отправляет данные формы, нажав кнопку «Отправить», данные формы будут отправлены в файл сценария, указанный в атрибуте действия тега <form>. В этом примере мы указываем файл для обработки данных формы. Если вы хотите, чтобы эти данные обрабатывал другой файл PHP, вы можете изменить указанное имя файла сценария. Затем мы можем использовать суперглобальную переменную $_POST для сбора данных входного поля в форме:
<html><body><form Method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Имя: <input type="text" name="fname"><input type ="submit"></form><?php $name = $_POST['fname']; echo $name ?></body></html>
PHP $_GET также широко используется для сбора данных формы. Укажите этот атрибут в теге формы HTML: «method="get".
$_GET также может собирать данные, отправленные по URL-адресу.
Предположим, у нас есть HTML-страница с гиперссылкой, содержащая параметры:
<html><body><a href="test_get.php?subject=PHP&web=codercto.com">Проверьте $GET</a></body></html>
Когда пользователь нажимает на ссылку «Test $GET», параметры «subject» и «web» будут отправлены в «test_get.php». Чтобы получить это, вы можете использовать переменную $_GET в файле «test_get.php». данные.
В следующем примере показан код файла «test_get.php»:
<html><body><?php echo "Исследование" $_GET['subject'] " at " $_GET['web'];?></body></html>
Совет: Если вы хотите узнать больше о $_POST и $_GET, посетите нашу главу «Формы PHP».