Как получить ссылку на текущую страницу при помощи JS и PHP

Привет, друзья. Сегодня поговорим о том, как в JS и PHP получить адрес текущей страницы. Дело в том, что разработчику часто нужно выполнить какой-то код, только на определенных страницах или в зависимости от каких-то GET параметров. Как раз в таких случаях удобно сохранить все данные из адресной строки в объект или строку, чтобы иметь возможность удобно манипулировать своим кодом/разметкой в зависимость от полученных параметров.

Обычно я сталкиваюсь с такими задачами:

  • Получение utm-меток, в зависимости от которых мы можем менять контент на странице.
  • Определение адреса страниц, на которых стоит подключить какой-то скрипт.
  • Получение адреса страницы для передачи ссылки в форму обратной связи, чтобы понимать с какой страницы совершён заказ ( в том числе и передача utm-меток в форму).

Как получить ссылку на текущую страницу в Javascript

Для начала давайте разберемся как справиться с задачей при помощи js. В javascript есть объект Location, который позволяет получить текущий URL страницы. Доступ к нему я обычно произвожу через глобальный объект Window или Document. В итоге Window.location возвращает нам объект со свойствами, в которых и содержится интересующая нас информация. Например, самыми популярными для меня свойствами являются: href, hostname, pathname и search.

Для пример возьмем url:

https://smartlanding.biz/smartroulette-lp/index.php?utm_source=yandex

window.location.href

console.log(window.location.href); // вернёт: https://smartlanding.biz/smartroulette-lp/index.php?utm_source=yandex

Команда возвращает полный адрес страницы, то есть ссылку со всеми параметрами.

window.location.hostname

console.log(window.location.hostname); //вернет smartlanding.biz

Команда возвращает домен текущей страницы.

window.location.pathname

console.log(window.location.pathname); //вернет /smartroulette-lp/index.php

Вернет путь до текущей страницы, исключая домен и параметры. То есть покажет категорию/рубрику/папку, в которой находится страница.

window.location.search

console.log(window.location.search); // Вернет ?utm_source=yandex

Возвращает GET-параметр начиная со знака "?", то есть позволяет получить любые параметры, которые вы передаёте вместе со ссылкой. В том числе и пресловутые UTM-метки.

Как видите, в js есть все, чтобы легко справиться с задачей получения ссылки на текущую страницу. Но это не все возможности, которые дает нам javascript. Также можно получить протокол, порт, домен с портом и хеш из адресной строки. Делается это при помощи следующих свойств: protocol, port, host и hash.

console.log(window.location.protocol); // вернет https:
console.log(window.location.port); // вернет номер порта, если он присутствует в адресной строке
console.log(window.location.host); // вернёт домен и порт, если он есть
console.log(window.location.hash); // вернет хеш страницы, начиная с символа #, например, #testmarker

Как получить ссылку на текущую страницу в PHP

Теперь давайте посмотрим на PHP. На самом деле тут тоже дела обстоят подобным образом. Есть готовый массив $_SERVER , который содержит в том числе и путь к текущей странице.

Как и в прошлый раз покажу на примере адреса:

https://smartlanding.biz/smartroulette-lp/index.php?utm_source=yandex

Полный адрес текущей страницы на PHP

$currentUrl= ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
echo $currentUrl; // Выведет https://smartlanding.biz/smartroulette-lp/index.php?utm_source=yandex

Путь к текущей странице без параметров

$currentUrl = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$currentUrl = explode('?', $currentUrl);
$currentUrl = $currentUrl[0];

echo $currentUrl; // Выведет https://smartlanding.biz/smartroulette-lp/index.php

Путь без домена и параметров

$currentUrl = $_SERVER['REQUEST_URI'];
$currentUrl = explode('?', $url);
$currentUrl = $Url[0];
 
echo $currentUrl; // Вернет /smartroulette-lp/index.php

Получить только GET-параметры текущей страницы

$currentUrl = $_SERVER['QUERY_STRING'];

echo $currentUrl; // Выведет utm_source=yandex

Если остались какие-то вопросы - задавайте в комментариях. Попробуем решить.

Похожие публикации

Добавить комментарий