Как получить текущий URL на PHP

Веб-разработка часто требует получения текущего URL-адреса страницы, и в языке программирования PHP это можно сделать с помощью глобальных массивов. Глобальные массивы php — это структуры данных, которые содержат информацию о запросах, куки, сессиях и сервере. Для работы с текущим URL на php наиболее часто используются глобальные массивы $_SERVER и $_REQUEST.

Глобальный массив $_SERVER

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

$url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
echo $url;

Этот код вернёт полный URL страницы, который будет включать протокол (например, http), имя хоста и URI запроса.

HTTPS и порты

Если ваш сайт использует безопасное соединение (HTTPS), вы должны проверить это и изменить протокол соответствующим образом:

$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
echo $url;

Работа с портом

Если для доступа к ресурсу используется нестандартный порт, его также нужно добавить в URL:

$port = ($_SERVER["SERVER_PORT"] != "80") ? ":".$_SERVER["SERVER_PORT"] : "";
$url = $protocol . $_SERVER['HTTP_HOST'] . $port . $_SERVER['REQUEST_URI'];
echo $url;

Заключение

PHP предлагает удобные инструменты для работы с текущим URL при помощи глобальных массивов. Используя элементы массива $_SERVER, мы можем легко получить необходимую информацию о протоколе, домене и пути страницы. Важно помнить о проверке использования HTTPS и корректном отображении номера порта в случае его отличия от стандартного. Полученный текущий url на php может быть использован для различных целей: от создания навигационных ссылок до определения поведения приложения в зависимости от маршрута.

Таким образом, грамотное использование глобальных массивов в PHP позволяет эффективно управлять данными запросов и упростить разработку динамичных веб-приложений.