url
Definition
url($path = NULL, $query = NULL, $fragment = NULL, $absolute = FALSE)
includes/common.inc, line 1462
Description
Generate an internal Drupal URL.
When creating links in modules, consider whether l() could be a better alternative than url().
Parameters
$path The Drupal path being linked to, such as "admin/node".
$query A query string to append to the link.
$fragment A fragment identifier (named anchor) to append to the link.
$absolute Whether to force the output to be an absolute link (beginning with http:). Useful for links that will be displayed outside the site, such as in an RSS feed.
Return value
an HTML string containing a link to the given path.
Related topics
| Name | Description |
|---|---|
| Input validation | Functions to validate user input. |
Code
<?php
function url($path = NULL, $query = NULL, $fragment = NULL, $absolute = FALSE) {
global $base_url;
static $script;
if (empty($script)) {
// On some web servers, such as IIS, we can't omit "index.php". So, we
// generate "index.php?q=foo" instead of "?q=foo" on anything that is not
// Apache.
$script = (strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') === false) ? 'index.php' : '';
}
$path = drupal_get_path_alias($path);
if (isset($fragment)) {
$fragment = '#'. $fragment;
}
$base = ($absolute ? $base_url .'/' : '');
if (variable_get('clean_url', '0') == '0') {
if (isset($path)) {
if (isset($query)) {
return $base . $script .'?q='. $path .'&'. $query . $fragment;
}
else {
return $base . $script .'?q='. $path . $fragment;
}
}
else {
if (isset($query)) {
return $base . $script .'?'. $query . $fragment;
}
else {
return $base . $fragment;
}
}
}
else {
if (isset($path)) {
if (isset($query)) {
return $base . $path .'?'. $query . $fragment;
}
else {
return $base . $path . $fragment;
}
}
else {
if (isset($query)) {
return $base . $script .'?'. $query . $fragment;
}
else {
return $base . $fragment;
}
}
}
}
?> 