Как получить ссылку на текущую страницу при помощи JS и PHP
Привет, друзья. Сегодня поговорим о том, как в JS и PHP получить адрес текущей страницы. Дело в том, что разработчику часто нужно выполнить какой-то код, только на определенных страницах или в зависимости от каких-то GET параметров. Как раз в таких случаях удобно сохранить все данные из адресной строки в объект или строку, чтобы иметь возможность удобно манипулировать своим кодом/разметкой в зависимость от полученных параметров.
Обычно я сталкиваюсь с такими задачами:
- Получение utm-меток, в зависимости от которых мы можем менять контент на странице.
- Определение адреса страниц, на которых стоит подключить какой-то скрипт.
- Получение адреса страницы для передачи ссылки в форму обратной связи, чтобы понимать с какой страницы совершён заказ ( в том числе и передача utm-меток в форму).
Как получить ссылку на текущую страницу в Javascript
Для начала давайте разберемся как справиться с задачей при помощи js. В javascript есть объект Location, который позволяет получить текущий URL страницы. Доступ к нему я обычно произвожу через глобальный объект Window или Document. В итоге Window.location возвращает нам объект со свойствами, в которых и содержится интересующая нас информация. Например, самыми популярными для меня свойствами являются: href, hostname, pathname и search.
Для пример возьмем url:
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 , который содержит в том числе и путь к текущей странице.
Как и в прошлый раз покажу на примере адреса:
Полный адрес текущей страницы на 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
Если остались какие-то вопросы — задавайте в комментариях. Попробуем решить.
05/10/2022 Дмитрий Давыдов
Похожие публикации
- Реферальные хвосты. Как отправить данные из utm меток на почту
- Как получить адрес страницы с которой отправлена форма
- Как самостоятельно и быстро сделать лендинг
Как в php получить текущий URL?
Сегодня поговорим о том, как получить адрес страницы в php.
Зачем это может быть нужно?
Сценарии могут быть разными. Например, у нас используется один и тот же шаблон для разных разделов. Но в одном из разделов нам необходимо вывести (или не вывести) какой-то специфичный блок, которого в других разделах быть не должно.
Вероятно мы захотим сделать это по условию. И именно в условии мы и будем проверять тот ли это раздел.
Возможно с архитектурной точки зрения – это не самое лучшее решение. Однако, очень часто нам достаются уже готовые проекты, с которыми нужно что-то делать.
Получаем URL текущей страницы
Чтобы получить необходимую информацию, мы будем обращаться к такой глобальной переменной в php, как $_SERVER.
Переменная $_SERVER – это массив, который хранит в себе много полезной информации: заголовки, пути, местоположения скриптов.
Если вы хотите посмотреть всё, что хранит этот массив, то можете воспользоваться следующим кодом, который в читабельном виде выведет все значения:
'; var_dump($_SERVER); echo '
‘; ?>
Итак, давайте представим, что у нас есть веб страница следующего вида: http://localhost/php-lessons/url/?name=anna&city=Valencia.
Я тестирую на локальном сервере. Когда вы будете работать с реальным сайтом, который лежит в сети, то вместо localhost у вас будет имя вашего сайта (например exmple.ru).
Что мы видим в нашем подопытном url?
- Нас может интересовать адрес страницы без GET-параметров;
- адрес страницы с GET-параметрами;
- или просто сами GET-параметры без адреса страницы.
Давайте разберемся с каждой ситуацией.
Получаем полный URL страницы в php
Чтобы получить полный URL страницы вместе с GET-параметрами, воспользуемся следующим кодом:
$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; echo $url;
Сначала мы проверяем, какой протокол используется: https или http.
Если значение $_SERVER[‘HTTPS’] не пусто, значит это https, иначе http.
Далее мы присоединяем двоеточие и 2 слэша, имя домена (хоста) и остальную часть нашего URL.
Результат будет вот таким:
http://localhost/php-lessons/url/?name=anna&city=Valencia
Если протокол нам получать не нужно, то можно сократить код до такого:
Результат тогда будет следующим:
localhost/php-lessons/url/?name=anna&city=Valencia
Получаем URL страницы без GET-параметров в php
Иногда нас не интересуют GET-параметры, которые передаются как часть URL, и нам нужно получить адрес без них.
GET-параметры в нашем случает – это name=anna&city=Valencia
Чтобы отсечь их мы можем использовать php-функцию explode, которая разбивает строку по разделителю.
Наш URL – это ни что иное, как строка. GET-параметры всегда начинают передаваться после знака “?”. Следовательно разделителем будет вопросительный знак.
Функция explode превратит строку в массив с двумя элементами. В первом будет содержаться наш искомый url без GET-параметров, а во втором останутся GET-параметры.
Результат будет таким: http://localhost/php-lessons/url/
Получаем GET-параметры из URL
Здесь совсем все просто. Чтобы получить только GET-параметры будем использовать следующий код:
name=anna&city=Valencia
Дальше мы можете разобрать это строку, например, с помощью функции explode или сделать с ними что-либо еще (в зависимости от стоящей перед вами задачи).
А у меня на сегодня всё!
Ставьте лайки, оставляйте комментарии, подписывайтесь на обновления!
Здесь только полезные вещи
Как получить URL-адрес текущей страницы в PHP
Вы можете использовать встроенную переменную $_SERVER , чтобы получить URL-адрес текущей страницы в PHP. $_SERVER — это суперглобальная переменная, что означает, что она доступна везде.
Также, если вам нужен полный URL-адрес страницы, вам необходимо проверить протокол ( http или https ). Давайте посмотрим на пример, чтобы понять, как это работает:

Читайте также
Похожие примеры:
- Как извлечь подстроку из строки в PHP
- Как объединить две строки в PHP
- Как вставить одну строку перед другой в PHP
Как получить текущий URL в PHP?
Сформировать текущий адрес страницы можно с помощью элементов массива $_SERVER. Рассмотрим на примере URL:
Полный URL
$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; echo $url;
Результат:
https://example.com/category/page?sort=asc
URL без GET-параметров
$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $url = explode('?', $url); $url = $url[0]; echo $url;
Результат:
https://example.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
Для преобразования строки с GET-параметрами в ассоциативный массив можно применить функцию parse_str() .
parse_str('sort=asc&page=2&brand=rich', $get); print_r($get);
Результат:
Array ( [sort] => asc [page] => 2 [brand] => rich )
30.10.2019, обновлено 17.01.2021
Предыдущая запись Ссылки на e-mail
Следующая запись Счетчик просмотров страниц с графиком
Комментарии 2
17 марта 2020 в 11:38
Спасибо большое!
- Скопировать ссылку
- Пожаловаться
22 июля 2021 в 14:08
Как всегда. все просто и понятно))) Благодарю) Обожаю ваш сайт и манеру изложения информации)
Авторизуйтесь, чтобы добавить комментарий.
Другие публикации

Как получить данные из Google spreadsheets в виде массива PHP? Очень просто, Google docs позволяет экспортировать лист в формате CSV, главное чтобы файл был в общем доступе.

В продолжении темы работы с массивами поговорим о типичной задаче – их сортировке. Для ее выполнения в PHP существует множество функций, их подробное описание можно посмотреть на php.net, рассмотрим.
