Перейти к содержимому

$_SERVER

Понимание суперглобальных переменных PHP и переменной $_SERVER

PHP — популярный язык серверного скриптинга, используемый для веб-разработки. Одна из его уникальных особенностей — использование суперглобальных переменных, которые всегда доступны независимо от области видимости. В этой статье мы подробно рассмотрим одну из таких переменных — $_SERVER — и изучим её свойства и применение.

Что такое переменная $_SERVER?

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

  • `$_SERVER['HTTP_HOST']`: возвращает имя хоста и номер порта сервера.
  • `$_SERVER['REQUEST_URI']`: возвращает запрошенный URL.
  • `$_SERVER['QUERY_STRING']`: возвращает строку запроса URL.
  • `$_SERVER['HTTP_REFERER']`: возвращает URL страницы, с которой был осуществлён переход к текущему скрипту.
  • `$_SERVER['REQUEST_METHOD']`: возвращает метод запроса (GET, POST и т. д.).
  • `$_SERVER['REMOTE_ADDR']`: возвращает IP-адрес пользователя.
  • `$_SERVER['SCRIPT_FILENAME']`: возвращает абсолютный путь к выполняемому в данный момент скрипту.

Использование $_SERVER для перенаправления URL

Одним из распространённых способов использования переменной $_SERVER является перенаправление URL. Например, вы можете использовать следующий код для перенаправления пользователя на другую страницу:

Перенаправление в PHP с помощью функции header

php
<?php
header('Location: https://www.example.com/');
exit;
?>

В этом примере функция header используется для отправки необработанного HTTP-заголовка браузеру, указывая ему выполнить перенаправление на указанный URL. Затем оператор exit останавливает выполнение скрипта, предотвращая отправку любого дополнительного вывода в браузер.

Использование $_SERVER для обработки ошибок

Ещё одно применение переменной $_SERVER — обработка ошибок. Например, вы можете использовать следующий код для отображения пользовательской страницы ошибки при возникновении ошибки 404:

Обработка ошибки 404 в PHP с помощью $_SERVER

php
<?php
// Log the error URI using $_SERVER
error_log('404 Error: ' . $_SERVER['REQUEST_URI']);
http_response_code(404);
include '404.html';
?>

В этом примере $_SERVER['REQUEST_URI'] используется для захвата запрошенного пути с целью его логирования. Вместо перенаправления скрипт устанавливает правильный код состояния HTTP и подключает пользовательский шаблон, что является стандартной практикой обработки ошибок.

Заключение

Подводя итог, переменная $_SERVER — это мощный инструмент для веб-разработчиков, позволяющий получать важную информацию о сервере и среде выполнения их скриптов. Независимо от того, используете ли вы её для перенаправления URL, обработки ошибок или других задач, понимание и правильное использование свойств переменной $_SERVER значительно повысит функциональность и надёжность ваших PHP-скриптов.

Примечание: В современных версиях PHP закрывающий тег ?> является необязательным и часто опускается во избежание случайного вывода пробельных символов.

Практика

Какой информацией может обладать суперглобальная переменная PHP $_SERVER?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.