Как получить url страницы php
Перейти к содержимому

Как получить url страницы php

  • автор:

Как получить url страницы php

В связи с переходом на новый движок. возможны сбои в работе! Простите!
Работы производятся прямо сейчас 20-02-2024! ��

Получить адрес текущей страницы через php -> $_SERVER[«REQUEST_URI»]

Один из множества способов получения адреса текущей страницы использование $_SERVER[«REQUEST_URI»] !

И естественно, что мы должны первым делом посмотреть, что нам вернет это:

/page/php/url/002_php_adres_tekuschey_stranitsyi.html

А что мы хотим получить!? :

https://dwweb.ru/page/php/url/002_php_adres_tekuschey_stranitsyi.html

Для того, чтобы получить адрес текущей страницы через php нам потребуется:

Получим http протокол с помощью условия:

Получим название домена -> echo $_SERVER[«HTTP_HOST»]; :

Получим, все. что есть после домена -> echo $_SERVER[«REQUEST_URI»]; :

/page/php/url/002_php_adres_tekuschey_stranitsyi.html

Соберем весь код вместе:

Результат получения адреса текущей страницы :

https://dwweb.ru/page/php/url/002_php_adres_tekuschey_stranitsyi.html

Единственное неудобство у данного способа получения адреса текущей страницы, если у ссылки будет get запрос, то он тоже покажется в этом случае. посмотрите на пример Пример, который идет выше и запомните! А теперь нажмите на ссылку гет запросом и после нажатия посмотрите на ту же строку:

Как видим. у нас появилась дополнительная информация в ссылке.

Для того, чтобы Получить адрес текущей страницы через php мы можем использовать pathinfo с тем же $_SERVER[«REQUEST_URI»].

Выведем через print_r, что у нас получает pathinfo($_SERVER[‘REQUEST_URI’])

print_r(pathinfo($_SERVER[‘REQUEST_URI’]));

Array
(
[dirname] => /page/php/url
[basename] => 002_php_adres_tekuschey_stranitsyi.html
[extension] => html
[filename] => 002_php_adres_tekuschey_stranitsyi
)

Далее соберем ссылку после домена.

echo pathinfo($_SERVER[‘REQUEST_URI’])[‘dirname’]. ‘/’ .pathinfo($_SERVER[‘REQUEST_URI’])[‘basename’];

Что у нас получилось:

/page/php/url/002_php_adres_tekuschey_stranitsyi.html

Ну и собственно мы можем собрать всю ссылку на текущую страницу через php используя протокол и домен, что были прописанный в первом пункте, соберем весь код вместе:

echo $protocol .$_SERVER[«HTTP_HOST»] . pathinfo($_SERVER[‘REQUEST_URI’])[‘dirname’]. ‘/’ .pathinfo($_SERVER[‘REQUEST_URI’])[‘basename’];

Вывод ссылки через php на текущую страницу, и да. можно вместо переменной $protocol и условия по выводу протокола, что применен в первом пункте, просто написать(всего 8 знаков) https:// :

Получаем адрес текущей страницы из -> __FILE__

Вообще получить адрес текущей страницы огромное количество, на все вкусы! Как вы знаете, одна из замечательных констант это __FILE__:

Выведем её прямо здесь, через echo -> echo __FILE__; :

home/www/page/php/url/002_php_adres_tekuschey_stranitsyi.html

Получим домен таким образом:

$domen = $_SERVER[«HTTP_X_FORWARDED_PROTO»].’://’.$_SERVER[«HTTP_HOST»];

Выведем echo $domen;

https://dwweb.ru

И далее путь до корневой на сревре меняем на $domen , соберем весь код вместе:

$domen = $_SERVER[«HTTP_X_FORWARDED_PROTO»].’://’.$_SERVER[«HTTP_HOST»];

echo str_replace($_SERVER[‘DOCUMENT_ROOT’] , $domen, __FILE__);

https://dwweb.ru/page/php/url/002_php_adres_tekuschey_stranitsyi.html

Ну и вдогонку, например можно вывести адрес текущей страницы таким образом:

echo $_SERVER[HTTP_X_FORWARDED_PROTO].»://».$_SERVER[SERVER_NAME] . $_SERVER[PHP_SELF]; Примечание

— если вы используете единую точку входа — то такой вариант не сработает.

Результат ошибки вывода текущей страницы:

https://dwweb.ru/index.html
И чтобы вы убедились, в моих словах, выведем адрес текущей страницы в отдельном файле — > здесь

Получить адрес текущей страницы через php -> parse_url

Следующий вариант получения «адреса текущей страницы через php» — это функция «parse_url».

$REQUEST_URI = $_SERVER[‘REQUEST_URI’];

Выведем с помощью echo — echo $REQUEST_URI;

/page/php/url/002_php_adres_tekuschey_stranitsyi.html

Но если после html, есть какой-то мусор, то данный вариант выведет, как пример:

/page/php/url/002_php_adres_tekuschey_stranitsyi.html?exaple=привет_мир

Теперь применим к $REQUEST_URI функцию «parse_url»

echo parse_url($REQUEST_URI, PHP_URL_PATH);
/page/php/url/002_php_adres_tekuschey_stranitsyi.html
$domen = $_SERVER[«HTTP_X_FORWARDED_PROTO»].’://’.$_SERVER[«HTTP_HOST»];

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

$parse_url = parse_url($REQUEST_URI, PHP_URL_PATH);

$hp_page = $domen . $parse_url;

и выведем echo $hp_page;

https://dwweb.ru/page/php/url/002_php_adres_tekuschey_stranitsyi.html

ruweb

Все статьи авторские, при копироавании активная ссылка обязательна DwWeb.ru!
© 2015 — 2024 Контакты. Реклама на сайте
Лучший хостинг : RUWEB + помощь по RUWEB

Как получить ссылку на текущую страницу при помощи 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 меток на почту
  • Как получить адрес страницы с которой отправлена форма
  • Как самостоятельно и быстро сделать лендинг

$_SERVER

Переменная $_SERVER — это массив ( array ), содержащий такую информацию, как заголовки, пути и местоположения скриптов. Записи в этом массиве создаются веб-сервером, поэтому нет гарантии, что каждый веб-сервер будет предоставлять любую из этих переменных; серверы могут опускать некоторые из них или предоставлять другие, не указанные здесь. Однако большинство из этих переменных учтены в спецификации » CGI/1.1 и, скорее всего, будут определены.

Замечание: При запуске PHP в командной строке большинство из этих записей будут недоступны или не будут иметь никакого значения.

В дополнение к перечисленным ниже элементам, PHP будет создавать дополнительные элементы со значениями из заголовков запросов. У элементов будет имя HTTP_ , за которым следует имя заголовка, написанное с заглавной буквы и с подчёркиванием вместо дефиса. Например, заголовок Accept-Language будет доступен как $_SERVER[‘HTTP_ACCEPT_LANGUAGE’] .

Индексы

‘ PHP_SELF ‘ Имя файла скрипта, который сейчас выполняется, относительно корня документов. Например, $_SERVER[‘PHP_SELF’] в скрипте по адресу http://example.com/foo/bar.php будет /foo/bar.php . Константа __FILE__ содержит полный путь и имя файла текущего (то есть подключённого) файла. Если PHP запущен в командной строке, эта переменная содержит имя скрипта. ‘argv’ Массив аргументов, переданных скрипту. Когда скрипт запущен в командой строке, это даёт C-подобный доступ к параметрам командной строки. Когда вызывается через метод GET, этот массив будет содержать строку запроса. ‘argc’ Содержит количество параметров, переданных скрипту (если запуск произведён в командной строке). ‘ GATEWAY_INTERFACE ‘ Содержит используемую сервером версию спецификации CGI; к примеру ‘CGI/1.1’ .. ‘ SERVER_ADDR ‘ IP-адрес сервера, на котором выполняется текущий скрипт. ‘ SERVER_NAME ‘ Имя хоста, на котором выполняется текущий скрипт. Если скрипт выполняется на виртуальном хосте, здесь будет содержатся имя, определённое для этого виртуального хоста.

Замечание: В Apache 2 необходимо установить UseCanonicalName = On и ServerName . В противном случае это значение отразит имя хоста, предоставленное клиентом, которое может быть подделано. Небезопасно полагаться на это значение в контексте, требующем безопасности.

‘ SERVER_SOFTWARE ‘ Строка идентификации сервера, указанная в заголовках, когда происходит ответ на запрос. ‘ SERVER_PROTOCOL ‘ Имя и версия информационного протокола, через который была запрошена страница; к примеру ‘HTTP/1.0’ ; ‘ REQUEST_METHOD ‘ Какой метод был использован для запроса страницы; к примеру ‘GET’ , ‘HEAD’ , ‘POST’ , ‘PUT’ .

Замечание:

PHP-скрипт завершается после отправки заголовков (то есть после того, как осуществляется любой вывод без буферизации вывода), если метод запроса был HEAD .

‘ REQUEST_TIME ‘ Временная метка начала запроса. ‘ REQUEST_TIME_FLOAT ‘ Временная метка начала запроса с точностью до микросекунд. ‘ QUERY_STRING ‘ Строка запроса, если есть, через которую была открыта страница. ‘ DOCUMENT_ROOT ‘ Директория корня документов, в которой выполняется текущий скрипт, в точности та, которая указана в конфигурационном файле сервера. ‘ HTTPS ‘ Принимает непустое значение, если запрос был произведён через протокол HTTPS. ‘ REMOTE_ADDR ‘ IP-адрес, с которого пользователь просматривает текущую страницу. ‘ REMOTE_HOST ‘ Удалённый хост, с которого пользователь просматривает текущую страницу. Обратный поиск DNS основан на значении переменной REMOTE_ADDR .

Замечание: Сервер должен быть настроен, чтобы создавать эту переменную. Для примера, в Apache необходимо присутствие директивы HostnameLookups On в файле httpd.conf , чтобы эта переменная создавалась. Смотрите также gethostbyaddr() .

‘ REMOTE_PORT ‘ Порт на удалённой машине, который используется для связи с сервером. ‘ REMOTE_USER ‘ Аутентифицированный пользователь. ‘ REDIRECT_REMOTE_USER ‘ Аутентифицированный пользователь, если запрос был перенаправлен изнутри. ‘ SCRIPT_FILENAME ‘

Абсолютный путь к исполняемому скрипту.

Замечание:

Если скрипт запускается в командной строке (CLI), используя относительный путь, такой как file.php или ../file.php , переменная $_SERVER[‘SCRIPT_FILENAME’] будет содержать относительный путь, указанный пользователем.

‘ SERVER_ADMIN ‘ Эта переменная получает своё значение (для Apache) из директивы конфигурационного файла сервера. Если скрипт запущен на виртуальном хосте, это будет значение, определённое для данного виртуального хоста. ‘ SERVER_PORT ‘ Порт на компьютере сервера, используемый сервером для соединения. Для установок по умолчанию, значение будет ’80’ ; используя SSL, например, это значение будет таким, какое сконфигурировано для соединений безопасного HTTP.

Замечание: Чтобы получить физический (реальный) порт в Apache 2, необходимо установить UseCanonicalName = On и UseCanonicalPhysicalPort = On , иначе это значение может быть подменено и не вернуть реальной значение физического порта. Полагаться на это значение небезопасно в контексте приложений, требующих усиленной безопасности.

‘ SERVER_SIGNATURE ‘ Строка, содержащая версию сервера и имя виртуального хоста, которые добавляются к генерируемым сервером страницам, если включено. ‘ PATH_TRANSLATED ‘ Путь файловой системы (не document root) к текущему скрипту, после того как сервер выполнил отображение virtual-to-real.

Замечание: Пользователи Apache 2 могут использовать директиву AcceptPathInfo = On в конфигурационном файле httpd.conf для задания переменной PATH_INFO .

‘ SCRIPT_NAME ‘ Содержит путь к текущему исполняемому скрипту. Это полезно для страниц, которые должны указывать на самих себя. Константа __FILE__ содержит полный путь и имя текущего (то есть включённого) файла. ‘ REQUEST_URI ‘ URI, который был предоставлен для доступа к этой странице. Например, ‘ /index.html ‘. ‘ PHP_AUTH_DIGEST ‘ При выполнении аутентификации HTTP Digest этой переменной присваивается заголовок ‘Authorization’, отправленный клиентом (который затем следует использовать для проведения соответствующей проверки). ‘ PHP_AUTH_USER ‘ При выполнении HTTP-аутентификации этой переменной присваивается имя пользователя, предоставленное пользователем. ‘ PHP_AUTH_PW ‘ При выполнении HTTP-аутентификации этой переменной присваивается пароль, предоставленный пользователем. ‘ AUTH_TYPE ‘ При выполнении HTTP-аутентификации этой переменной присваивается тип аутентификации, который используется. ‘ PATH_INFO ‘ Содержит любой предоставленный пользователем путь, содержащийся после имени скрипта, но до строки запроса, если она есть. Например, если текущий скрипт запрошен по URL http://www.example.com/php/path_info.php/some/stuff?foo=bar , то переменная $_SERVER[‘PATH_INFO’] будет содержать /some/stuff . ‘ ORIG_PATH_INFO ‘ Исходное значение переменной ‘ PATH_INFO ‘ перед обработкой PHP.

Примеры

Пример #1 Пример использования $_SERVER

Как определить текущий url сайта и директории исполняющего файла в php

3123123

Если вы программируете на php, то вам обязательно придется столкнуться с такими понятиями , как относительные и абсолютные ссылки, директории скриптов и т.п.

Начнем с простого, а именно определения текущей страницы сайта.

Сделать это можно с помощью элемента супермассива: $_SERVER[‘REQUEST_URI’]. Пример: echo $_SERVER[‘REQUEST_URI’]; — выдаст ссылку текущей страницы сразу после домена со всеми GET параметрами, если они есть.

При методах include или require в php появляется необходимость использовать либо относительные пути директорий, либо абсолютные. Первые задаются относительно папки исполняющего скрипта. Например, есть файл index.php в папке sait. Нам нужно инклудить файл msg.php, который находится в этой же папке — тогда мы будем использовать команду include(‘msg.php’); Если бы msg.php находился в папке выше, то include(‘../msg.php’);

Что касается абсолютных путей, то они должны идти от корневой папки сервера. Чтобы правильно подключить файл на include используйте следующую конструкцию:

Здесь $_SERVER[‘DOCUMENT_ROOT’] подключит путь от корневой папки сервера (например: /var/www/u010381422/data/www/вашсайт.ру), а /sait/msg.php — часть ссылки, которую мы можем доподключить вручную.

Если подключения от корневой директории нужно производить часто, то рекомендую использовать константу:

define(‘ROOT’, $_SERVER[‘DOCUMENT_ROOT’]);
include(ROOT.»/sait/msg.php»);

Константы __FILE__ и __DIR__ в php

__FILE__ Вы можете использовать полезную константу __FILE__ для определения полного пути от сервера к вашему исполняющему файлу с выводом его имени и расширением. Например, если в нашем примере мы напишем echo __FILE__; — то получим полный путь к файлу, от которого запущена эта команда: /var/www/u010381422/data/www/вашсайт.ру/sait/msg.php (естественно, у вас будет другой путь директории).

__DIR__ В отличие от __FILE__ константа __DIR__ показывает только директорию исполняющего файла без его имени. Например: echo __DIR__; (выведет: /var/www/u010381422/data/www/вашсайт.ру/sait)

Если подвести итог, то создайте любой php файл и разместить в нем код:
echo $_SERVER[‘REQUEST_URI’]; echo ‘
‘; //Текущая ссылка файла
echo __FILE__; echo ‘
‘; //Полный путь и имя текущего файла — /var/www/u010381422/data/www/вашсайт.ру/sait/msg.php
echo __DIR__; echo ‘
‘; //Директория файла (эквивалент: dirname(__FILE__) ) — /var/www/u010381422/data/www/вашсайт.ру/sait
?>

После запуска такого файла, вы увидите все параметры индивидуальные для вашего сервера.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *