Для работы с текущим URL страницы в основном используется глобальный массив $_SERVER. Этот массив содержит информацию о сервере и среде исполнения скриптов. Из него можно достать некоторые заголовки, адреса скриптов и другое. Однако, т.к. этот массив формируется сервером, его содержание может несколько разниться.

Вот некоторые параметры которыми мы будем пользоваться в целях получения URL:
  • HTTPS -  Принимает непустое значение, если запрос был произведён через протокол HTTPS.
  • HTTP_HOST -  Содержимое заголовка Host: из текущего запроса, если он есть.
  • REQUEST_URI - URI, который был передан для того, чтобы получить доступ к этой странице. Например, '/index.html'.
  • QUERY_STRING - Строка запросов, если есть, с помощью которой была получена страница.

Для примера возьмём вымышленный адрес страницы  https://site.com/category/page?sort=asc

Полный URL


$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
echo $url;

Результат: https://site.com/category/page?sort=asc

URL без GET параметров


$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
//Разбиваем полный URL по символу «?», после которого перечисляются 
//GET параметры, т.е. получаем массив с 2 строками 0 - путь, 1 - GET параметры
$url = explode('?', $url);
$url = $url[0];


Результат: https://site.com/category/page

Адрес страницы с GET параметрами

Т.е. мы получим внутренний адрес на сайте, без домена и протокола

$url = $_SERVER['REQUEST_URI'];
echo $url;

Результат: /category/page?sort=asc

Только адрес страницы


$url = $_SERVER['REQUEST_URI'];
//Разбиваем строку по тому же правило, что было описано выше
$url = explode('?', $url);
$url = $url[0];
 
echo $url;

Результат: /category/page

Только GET параметры


echo $_SERVER['QUERY_STRING'];

Результат: sort=asc


Однако с такой строкой не очень то удобно работать, но её можно преобразовать в ассоциативный массив. Для этого существует функция parse_str() она разбирает строку GET запроса на переменные.  


$output = [];
parse_str($_SERVER['QUERY_STRING'], $output);

Результат:


Array
(
    [sort] => asc
)



Полезная статья?
(Нет голосов)
Курсы от партнёров
Хотите освоить востребованную профессию? Воспользуйтесь предложениями от наших партнёров. Пройдите учебный курс по одному из популярных IT направлений.

Все курсы партёнров
Вам также могут понравиться
CSS курсоры

CSS курсоры

В статье рассмотрены возможности изменения курсоров пользователя при помощи CSS

Работа с регистром строк в php

Работа с регистром строк в php

В статье рассмотрены примеры работы с регистром строк в языке PHP, проверка регистра, изменение, инверсия

Работа с циклами в PHP

Работа с циклами в PHP

В статье рассмотрены примеры работы с циклами в PHP


Комментарии
Защита от автоматических сообщений
CAPTCHA
Введите слово на картинке