Различные способы получить текущий URL-адрес в PHP без имени файла

При работе с PHP обычно требуется текущий URL-адрес без имени файла. Эта информация может быть полезна во многих сценариях, таких как создание динамических меню навигации, создание канонических URL-адресов или отслеживание активности пользователей. В этой статье блога мы рассмотрим различные методы достижения этой цели и предоставим вам примеры кода, чтобы облегчить понимание. Итак, приступим!

Метод 1: использование $_SERVER[’REQUEST_URI’]
Суперглобальный массив $_SERVER в PHP обеспечивает доступ к различной информации о сервере и среде выполнения. Чтобы получить текущий URL-адрес без имени файла, вы можете использовать ключ REQUEST_URI. Вот пример:

$currentURL = $_SERVER['REQUEST_URI'];
$currentURL = rtrim($currentURL, basename($currentURL));

Этот метод получает полный URL-адрес, включая строку запроса, а затем удаляет имя файла с помощью функции rtrim().

Метод 2: использование $_SERVER[‘PHP_SELF’] и $_SERVER[‘QUERY_STRING’]
Другой подход заключается в использовании ключей PHP_SELF и QUERY_STRING из суперглобального массива $_SERVER. Вот пример:

$currentURL = $_SERVER['PHP_SELF'];
$queryString = $_SERVER['QUERY_STRING'];
$currentURL = str_replace($queryString, '', $currentURL);

Этот метод извлекает текущий URL-адрес и строку запроса отдельно, а затем удаляет строку запроса из URL-адреса.

Метод 3: использование parse_url() и $_SERVER[’REQUEST_URI’]
Функция parse_url() в PHP позволяет анализировать строку URL-адреса и извлекать ее компоненты. Вот пример того, как вы можете использовать его для получения текущего URL-адреса без имени файла:

$currentURL = $_SERVER['REQUEST_URI'];
$parsedURL = parse_url($currentURL);
$currentURL = $parsedURL['scheme'] . '://' . $parsedURL['host'] . rtrim($parsedURL['path'], basename($parsedURL['path']));

Этот метод использует функцию parse_url() для извлечения компонентов URL-адреса, а затем перестраивает URL-адрес без имени файла.

В этой статье блога мы рассмотрели различные методы получения текущего URL-адреса в PHP без имени файла. Мы рассмотрели использование суперглобального массива $_SERVER[’REQUEST_URI’], ключей $_SERVER[’PHP_SELF’] и $_SERVER[’QUERY_STRING’] и функции parse_url(). Каждый метод предусматривает свой подход к достижению желаемого результата.

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