Подтвердить что ты не робот

Как получить полный URL-адрес страницы Drupal?

Мне нужно захватить URL-адрес текущей страницы на сайте Drupal. Неважно, какой тип контента он есть - может быть любой тип node.

Я НЕ ищу путь к теме, или базовый url, или Drupal get_destination. Я ищу функцию или переменную, которая даст мне следующее:

http://example.com/node/number

Либо с или без (более вероятно) http://.

4b9b3361

Ответ 1

drupal_get_destination() содержит некоторый внутренний код, который указывает на правильное место, чтобы получить текущий внутренний путь. Чтобы перевести этот путь в абсолютный URL, функция url() должна сделать трюк. Если "абсолютная" опция передана в нее, она будет генерировать полный URL, а не только внутренний путь. Он также будет заменять любые псевдонимы пути для текущего пути.

$path = isset($_GET['q']) ? $_GET['q'] : '<front>';
$link = url($path, array('absolute' => TRUE));

Ответ 2

Вот что я нашел полезным

global $base_root;
$base_root . request_uri();

Возвращает строки запросов и то, что используется в ядре: page_set_cache()

Ответ 3

Вы также можете сделать это следующим образом:

$current_url = 'http://' .$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

Это немного быстрее.

Ответ 4

Попробуйте следующее:

url($_GET['q'], array('absolute' => true));

Ответ 5

Этот метод является старым методом, в drupal 7 мы можем получить его очень просто

    current_path()

и другая функция с малой разницей

request_path()

Ответ 6

Я использую токены довольно чистыми. Он интегрирован в ядро ​​в Drupal 7.

<?php print token_replace('[current-page:url]'); ?>

Ответ 7

Ниже приведено больше Drupal-ish:

url(current_path(), array('absolute' => true)); 

Ответ 8

Для Drupal 8 вы можете сделать это:

$url = 'YOUR_URL';
$url = \Drupal\Core\Url::fromUserInput('/' . $url,  array('absolute' => 'true'))->toString();

Ответ 9

Возможно, что вы хотите, это просто старые предопределенные переменные.

Рассмотрим попытку

$_SERVER['REQUEST_URI'']

Или читайте здесь.