我需要在Drupal站点中抓取当前页面的URL。它的内容类型无关紧要 - 可以是任何类型的节点。
我不是在寻找主题,基本网址或Drupal的get_destination的路径。我正在寻找一个函数或变量,它将完整地给我以下内容:
http://example.com/node/number
有或没有(更有可能)http://
。
答案 0 :(得分:53)
drupal_get_destination()有一些内部代码指向正确的位置以获取当前内部路径。要将该路径转换为绝对URL,url()函数应该可以解决问题。如果传递'绝对'选项,它将生成完整的URL,而不仅仅是内部路径。它还将交换当前路径的任何路径别名。
$path = isset($_GET['q']) ? $_GET['q'] : '<front>';
$link = url($path, array('absolute' => TRUE));
答案 1 :(得分:37)
答案 2 :(得分:19)
你也可以这样做:
$current_url = 'http://' .$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
它快一点。
答案 3 :(得分:14)
尝试以下方法:
url($_GET['q'], array('absolute' => true));
答案 4 :(得分:12)
这个方法都是老方法,在drupal 7中我们可以非常简单
current_path()
和另一个微小差异的功能
request_path()
答案 5 :(得分:3)
以下是 Drupal-ish :
url(current_path(), array('absolute' => true));
答案 6 :(得分:0)
对于Drupal 8 ,您可以这样做:
$url = 'YOUR_URL';
$url = \Drupal\Core\Url::fromUserInput('/' . $url, array('absolute' => 'true'))->toString();
答案 7 :(得分:-1)