7 path.inc | current_path() |
8 path.inc | current_path() |
Return the current URL path of the page being viewed.
Examples:
- http://example.com/node/306 returns "node/306".
- http://example.com/drupalfolder/node/306 returns "node/306" while base_path() returns "/drupalfolder/".
- http://example.com/path/alias (which is a path alias for node/306) returns "node/306" as opposed to the path alias.
This function is not available in hook_boot() so use $_GET['q'] instead. However, be careful when doing that because in the case of Example #3 $_GET['q'] will contain "path/alias". If "node/306" is needed, calling drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL) makes this function available.
Return value
The current Drupal URL path.
See also
12 calls to current_path()
- drupal_cache_system_paths in includes/
path.inc - Cache system paths for a page.
- drupal_lookup_path in includes/
path.inc - Given an alias, return its Drupal system URL if one exists. Given a Drupal system URL return one of its aliases if such a one exists. Otherwise, return FALSE.
- drupal_redirect_form in includes/
form.inc - Redirects the user to a URL after a form has been processed.
- drupal_validate_form in includes/
form.inc - Validates user-submitted form data in the $form_state array.
- overlay_drupal_goto_alter in modules/
overlay/ overlay.module - Implements hook_drupal_goto_alter().
File
- includes/
path.inc, line 354 - Functions to handle paths in Drupal, including path aliasing.
Code
function current_path() {
return $_GET['q'];
}
Comments
without language prefix
Will also return URLs without the language prefix.
get the path alias
and here's how to get the alias:
<?php
$path = current_path();
$path_alias = drupal_lookup_path('alias',$path);
?>
reference: http://api.drupal.org/api/drupal/includes%21path.inc/function/drupal_loo...
Use request_path()
request_path() already gives you the *current* alias in use - see http://api.drupal.org/api/drupal/includes!bootstrap.inc/function/request...
drupal_lookup_path() is helpful when you want to lookup aliases for pages other than the current page.
not the same thing if you are
not the same thing if you are on a localized site with language codes in url
print drupal_get_path_alias(current_path()); // will print "some_url"
print request_path(); // will print "en/some_url"
Using request_path() can lead to problems in conditional code and doubling up of the language code i.e 'en/en/' in some cases.
Courtesy of chx
$GLOBALS['base_url'] => http://example.com/drupal
base_path() => /drupal/
request_uri() => /drupal/documentation?page=1
request_path() => documentation
current_path() => node/26419