You are here

public function FileSystem::basename in Drupal 10

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/File/FileSystem.php \Drupal\Core\File\FileSystem::basename()
  2. 9 core/lib/Drupal/Core/File/FileSystem.php \Drupal\Core\File\FileSystem::basename()

File

core/lib/Drupal/Core/File/FileSystem.php, line 159

Class

FileSystem
Provides helpers to operate on files and stream wrappers.

Namespace

Drupal\Core\File

Code

public function 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;
}