当前位置:  开发笔记 > 编程语言 > 正文

如何获取Drupal页面的完整URL?

如何解决《如何获取Drupal页面的完整URL?》经验,为你挑选了5个好方法。

我需要在Drupal站点中抓取当前页面的URL.它的内容类型无关紧要 - 可以是任何类型的节点.

我不是在寻找主题,基本网址或Drupal的get_destination的路径.我正在寻找一个函数或变量,它将完整地给我以下内容:

http://example.com/node/number

有或没有(更有可能)http://.



1> Eaton..:

drupal_get_destination()有一些内部代码指向正确的位置以获取当前内部路径.要将该路径转换为绝对URL,url()函数应该可以解决问题.如果传递'绝对'选项,它将生成完整的URL,而不仅仅是内部路径.它还将交换当前路径的任何路径别名.

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



2> mikeytown2..:

这是我发现有用的东西

global $base_root;
$base_root . request_uri();

返回查询字符串,它是core中使用的内容:page_set_cache()



3> 小智..:

你也可以这样做:

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

它有点快.


始终编​​程到接口而不是实现.

4> ax...:

请尝试以下方法:

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


这是一个更多的drupaly:url(current_path(),array('absolute'=> true));

5> Yusef..:

这个方法都是老方法,在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返回一个空字符串.

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有