Для работы с текущим 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
)



Полезная статья?
(Голосов: 1, Рейтинг: 3.3)
Вам также могут понравиться
Английский для программистов

Английский для программистов

Почему IT-специалисту необходимо освоить английский язык? Разбираем в статье.

Как подключить CSS и JS файлы к шаблону 1С Битрикс

Как подключить CSS и JS файлы к шаблону 1С Битрикс

Как правильно подключать стили и скрипты к шаблону 1С Битрикс.

Генерация оглавления статьи

Генерация оглавления статьи

В статье рассмотрен пример функции для генерации оглавления статьи блога или новости


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