Получаем текущий url страницы

PHP

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

Описание супермассива

В PHP информация, связанная с работой сервера, записывается в супермассив $_SERVER, поэтому обращаться к конкретному элементу в нём нужно через квадратные скобки и кавычки внутри них. Аналогичным образом ($_GET, $_POST и так далее) можно узнать значения определённых HTTP-заголовков и cookie, проверить их существование в целом и выполнять различные действия.

В состав массива входит масса индексов, рассмотренных на странице официальной документации языка. В получении адреса скрипта, который сейчас выполняется, понадобится использовать ‘PHP_SELF’, однако он не подойдёт в случае, если страница «склеивается» из нескольких частей – если нужно вывести адрес посещаемого клиентом документа, стоит использовать ‘REQUEST_URI’.

Некоторые входящие в массив индексы могут использоваться при разработке консольных приложений и при запуске PHP-скриптов в терминале (командной строке).

Примеры использования

Получение адреса скрипта

<? print($_SERVER[‘PHP_SELF’]);?>

Результат: вывод расположения скрипта без учёта папок по типу public_htmlи доменного имени ресурса.

Чтобы указать абсолютное местонахождение выполняемого кода (с учётом «технических» директорий) следует написать следующее:

<? print(__FILE__); ?>

Получение адреса страницы

Код имеет следующий вид:

<? print ($_SERVER[‘REQUEST_URI’]);?>

Как и в предыдущем случае, для вывода полного пути следует использовать константу __FILE__.

Вывод адреса без HTTP-параметров

<? print($_SERVER[‘REQUEST_SCHEME’].’://’.$_SERVER[‘HTTP_HOST’] .explode(‘?’, $_SERVER[‘REQUEST_URI’], 2)[0]);?>

За удаление GET-параметров отвечает участок кода с explode();. Если они нужны, следует воспользоваться этим методом:

<? print($_SERVER[‘REQUEST_SCHEME’].’://’.$_SERVER[‘HTTP_HOST’]);?>

Советуется устанавливать регулярные выражения для валидации GET-данных, особенно если они будут выводиться на стороне клиента. Иначе сайт может оказаться уязвимым для XSS-атак.

Оцените статью
Образовательный портал WELCOME4U.RU
Добавить комментарий

Adblock
detector