4

我想检索没有安装文件夹参数的当前页面路径别名。我正在使用:

drupal_get_path_alias(request_uri())

但这会返回安装/无论如何/实际/路径,我只想检索实际/路径,无论安装/无论是什么。

提前致谢 :)

4

7 回答 7

9

找到了。它实际上是两种建议的混合:

$current_path = drupal_get_path_alias($_GET["q"]);

不过谢谢。


更新:以前的解决方案并不总是有效

有人建议使用另一种方法:

str_replace(base_path(), '', drupal_get_path_alias(request_uri(), 1));

但是,有没有办法在不使用稍微昂贵的 str_replace 的情况下做同样的事情?

谢谢

于 2010-06-08T14:46:16.243 回答
2

您所在节点的路径?

http://api.drupal.org/api/function/drupal_get_path_alias/6

if ($node || (arg(0) == 'node' && arg(2) != 'edit')) {
   $system_path = 'node/'.arg(1);
   $current_path = drupal_get_path_alias($system_path);
}

该代码将在节点页面上触发并告诉您页面别名。

有关更多信息,您可以转储 $_GET 并查看“q”查询字符串值。

于 2010-06-08T14:41:27.050 回答
1

也许您可以像这样使用 base_path() 和 str_replace :

str_replace (base_path(), '', drupal_get_path_alias(request_uri()), 1);

base_path 保存在数据库中。

于 2010-06-08T14:50:42.193 回答
1
$current_page_url = drupal_get_path_alias( implode( '/', arg() ) );

也有效

于 2011-03-23T15:01:07.983 回答
0

你试过$_GET['q']吗?

于 2010-06-08T14:42:19.717 回答
0

我倾向于使用完整的 url 来避免当 base_path() 不仅仅是 '/' 时出现的任何问题。

$url = (($_SERVER['HTTPS'])?"https://":"http://")  .  $_SERVER['HTTP_HOST'] . url($_GET['q']);

或者更简单地说:

$url = url($_GET['q'], array('absolute'=>true));
于 2011-09-14T16:59:52.653 回答
0

最快的解决方案。

substr(drupal_get_path_alias(request_uri(), 1), strlen(base_path()));

将其传递给参数

$arg = explode('/', substr(drupal_get_path_alias(request_uri(), 1), strlen(base_path())));

于 2014-03-04T01:41:32.907 回答