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

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

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

http://example.com/node/number

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

Solutions Collecting From Web of "Как получить полный URL-адрес страницы Drupal?"

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

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

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

 global $base_root; $base_root . request_uri(); 

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

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

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

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

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

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

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

  current_path() 

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

 request_path() 

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

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

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

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

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

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

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

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

 $_SERVER['REQUEST_URI''] 

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