function drupal_basename
Same name in other branches
- 8.9.x core/includes/file.inc \drupal_basename()
Gets the filename from a given path.
PHP's basename() does not properly support streams or filenames beginning with a non-US-ASCII character.
See also
http://bugs.php.net/bug.php?id=37738
basename()
Related topics
32 calls to drupal_basename()
- color_scheme_form_submit in modules/
color/ color.module - Form submission handler for color_scheme_form().
- DrupalErrorCollectionUnitTest::assertError in modules/
simpletest/ tests/ common.test - Assert that a collected error matches what we are expecting.
- DrupalLocalStreamWrapper::getLocalPath in includes/
stream_wrappers.inc - Returns the canonical absolute path of the URI, if possible.
- DrupalLocalStreamWrapper::getMimeType in includes/
stream_wrappers.inc - Base implementation of getMimeType().
- drupal_get_css in includes/
common.inc - Returns a themed representation of all stylesheets to attach to the page.
File
-
includes/
file.inc, line 2476
Code
function drupal_basename($uri, $suffix = NULL) {
$separators = '/';
if (DIRECTORY_SEPARATOR != '/') {
// For Windows OS add special separator.
$separators .= DIRECTORY_SEPARATOR;
}
// Remove right-most slashes when $uri points to directory.
$uri = rtrim($uri, $separators);
// Returns the trailing part of the $uri starting after one of the directory
// separators.
$filename = preg_match('@[^' . preg_quote($separators, '@') . ']+$@', $uri, $matches) ? $matches[0] : '';
// Cuts off a suffix from the filename.
if ($suffix) {
$filename = preg_replace('@' . preg_quote($suffix, '@') . '$@', '', $filename);
}
return $filename;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.