Как получить полный URL-адрес страницы Drupal? - PullRequest
46 голосов
/ 01 апреля 2009

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

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

http://example.com/node/number

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

Ответы [ 9 ]

53 голосов
/ 01 апреля 2009

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

$path = isset($_GET['q']) ? $_GET['q'] : '<front>';
$link = url($path, array('absolute' => TRUE));
37 голосов
/ 03 августа 2009

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

global $base_root;
$base_root . request_uri();

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

19 голосов
/ 27 января 2010

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

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

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

14 голосов
/ 03 апреля 2009

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

url($_GET['q'], array('absolute' => true));
12 голосов
/ 22 мая 2012

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

    current_path()

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

request_path()
4 голосов
/ 20 сентября 2012

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

<?php print token_replace('[current-page:url]'); ?>
3 голосов
/ 04 марта 2015

Ниже больше Drupal-ish :

url(current_path(), array('absolute' => true)); 
0 голосов
/ 22 февраля 2017

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

$url = 'YOUR_URL';
$url = \Drupal\Core\Url::fromUserInput('/' . $url,  array('absolute' => 'true'))->toString();
0 голосов
/ 01 апреля 2009

Может быть, вам нужны просто старые предопределенные переменные.

Попробуйте попробовать

$_SERVER['REQUEST_URI'']

Или подробнее здесь .

...