Работа с Url (адресами страниц)

Октябрь 19, 2017

Теги: Основное, Строки

Работа с адресами страниц средствами Битрикс d7 при помощи класса \Bitrix\Main\Web\Uri.

Создание объекта Uri:


$uri = new \Bitrix\Main\Web\Uri('/path/to/page.php?param1=value1&param2=value2');

Создание объекта Uri из адреса текущей страницы:


$request = \Bitrix\Main\Application::getInstance()->getContext()->getRequest();

$uri = new \Bitrix\Main\Web\Uri($request->getRequestUri());

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


$uri->getUri()

Получение составляющих адреса:


$path $uri->getPath(); // путь, например "/path/to/page.php"

$query $uri->getQuery(); // строка параметров, например, "param1=value1&param2=value2"
parse_str($uri->getQuery(), $params); // так можно разбить строку параметров на массив вида array("param1" => "value1","param2" => "value2");
$port $uri->getPort(); // порт, например, 80
$scheme $uri->getScheme(); // протокол, например, "http"
$pathQuery $uri->getPathQuery(); // строка параметров со знаком вопроса, например, "?param1=value1&param2=value2";
$host $uri->getHost(); // домен, например, "site.com"
$fragment $uri->getFragment(); // то, что находится после знака "#"
$user $uri->getUser(); // имя пользователя
$pass $uri->getPass(); // пароль

Установка составляющих адреса:


$uri->setPath("/path/to/page.php"); // путь

$uri->setPort(80); // порт
$uri->setScheme("http"); // протокол
$uri->setHost("site.com"); // домен
$uri->setFragment("anchor"); // то, что находится после знака "#"
$uri->setUser("username"); // имя пользователя
$uri->setPass("gUvGhT12"); // пароль

Добавление параметров в адрес:


$uri->addParams(array("param1"=>"value1","param2"=>"value2"));

Удаление параметров из адреса:


$uri->deleteParams(array("param1"=>"value1","param2"=>"value2"));

Удаление системных параметров из адреса:


$uri->deleteParams(\Bitrix\Main\HttpRequest::getSystemParameters());

← Переход к списку