PHP: Hypertext Preprocessor (original) (raw)
basename
(PHP 4, PHP 5, PHP 7, PHP 8)
basename — Returns trailing name component of path
Description
Note:
basename() operates naively on the input string, and is not aware of the actual filesystem, or path components such as "
..
".
Caution
basename() is locale aware, so for it to see the correct basename with multibyte character paths, the matching locale must be set using the setlocale() function. If path
contains characters which are invalid for the current locale, the behavior of basename() is undefined.
Parameters
path
A path.
On Windows, both slash (/
) and backslash (\
) are used as directory separator character. In other environments, it is the forward slash (/
).
suffix
If the name component ends in suffix
this will also be cut off.
Return Values
Returns the base name of the given path
.
Examples
Example #1 basename() example
<?php echo "1) ".basename("/etc/sudoers.d", ".d").PHP_EOL; echo "2) ".basename("/etc/sudoers.d").PHP_EOL; echo "3) ".basename("/etc/passwd").PHP_EOL; echo "4) ".basename("/etc/").PHP_EOL; echo "5) ".basename(".").PHP_EOL; echo "6) ".basename("/"); ?>
The above example will output:
- sudoers
- sudoers.d
- passwd
- etc
- .
See Also
- dirname() - Returns a parent directory's path
- pathinfo() - Returns information about a file path
Found A Problem?
7 years ago
`It's a shame, that for a 20 years of development we don't have mb_basename() yet!
// works both in windows and unix
function mb_basename($path) {
if (preg_match('@^.*\\/$@s', path,path, path,matches)) {
return $matches[1];
} else if (preg_match('@^([^\\/]+)$@s', path,path, path,matches)) {
return $matches[1];
}
return '';
}
`
(remove) dot nasretdinov at (remove) dot gmail dot com ¶
16 years ago
`There is only one variant that works in my case for my Russian UTF-8 letters:
file=′image.jpg′;file = 'image.jpg';file=′image.jpg′;info = pathinfo($file); filename=basename(file_name = basename(filename=basename(file,'.'.$info['extension']); echo $file_name; // outputs 'image'?>`
1 day ago
You might expect that echo basename('directory_name/') would return an empty string. Instead, it returns 'directory_name', without the slash.
20 years ago
`If you want the current path where youre file is and not the full path then use this :)
Example:
www dir: domain.com/temp/2005/january/t1.php
'.dirname($_SERVER['PHP_SELF']).''); // returns: /temp/2005/january ?>
if you combine these two you get this
And for the full path use this
'.$_SERVER['PHP_SELF'].'
');
// returns: /temp/2005/january/t1.php
?>
`