我需要在Drupal站点中抓取当前页面的URL.它的内容类型无关紧要 - 可以是任何类型的节点.
我不是在寻找主题,基本网址或Drupal的get_destination的路径.我正在寻找一个函数或变量,它将完整地给我以下内容:
http://example.com/node/number
有或没有(更有可能)http://
.
drupal_get_destination()有一些内部代码指向正确的位置以获取当前内部路径.要将该路径转换为绝对URL,url()函数应该可以解决问题.如果传递'绝对'选项,它将生成完整的URL,而不仅仅是内部路径.它还将交换当前路径的任何路径别名.
$path = isset($_GET['q']) ? $_GET['q'] : ''; $link = url($path, array('absolute' => TRUE));
这是我发现有用的东西
global $base_root; $base_root . request_uri();
返回查询字符串,它是core中使用的内容:page_set_cache()
你也可以这样做:
$current_url = 'http://' .$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
它有点快.
请尝试以下方法:
url($_GET['q'], array('absolute' => true));
这个方法都是老方法,在drupal 7中我们可以很简单
current_path()
http://example.com/node/306返回"node/306".
http://example.com/drupalfolder/node/306返回"node/306",而base_path()返回"/ drupalfolder /".
http://example.com/path/alias(它是node/306的路径别名)返回"node/306"而不是路径别名.
和另一个微小差异的功能
request_path()
http://example.com/node/306返回"node/306".
http://example.com/drupalfolder/node/306返回"node/306",而base_path()返回"/ drupalfolder /".
http://example.com/path/alias(它是node/306的路径别名)返回"path/alias"而不是内部路径.
http://example.com/index.php返回一个空字符串(含义:首页).
http://example.com/index.php?page=1返回一个空字符串.