SplFileInfo::getBasename

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

SplFileInfo::getBasenameGets the base name of the file

Beschreibung

public SplFileInfo::getBasename(string $suffix = ""): string

This method returns the base name of the file, directory, or link without path info.

Achtung

SplFileInfo::getBasename() 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.

Parameter-Liste

suffix

Optional suffix to omit from the base name returned.

Rückgabewerte

Returns the base name without path information.

Beispiele

Beispiel #1 SplFileInfo::getBasename() example

<?php
$info
= new SplFileInfo('file.txt');
var_dump($info->getBasename());

$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename());

$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename('.txt'));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(8) "file.txt"
string(8) "file.txt"
string(4) "file"

Siehe auch

add a note

User Contributed Notes 3 notes

up
24
adam dot schubert at sg1-game dot net
9 years ago
If you want to get only filename and dont want to use weird:<?phppathinfo($file->getBasename(), PATHINFO_FILENAME);?>You can use (also weird but ~better looking):<?php$file->getBasename('.'.$file->getExtension());?>PS: Why there is getFilename ? when it returns ~same stuff as getBasename ? I have to do this ugly stuff^ instead of simple getFilename...
up
4
schuyler dot bos at gmail dot com
8 years ago
Agreed, this is just silly.  why not make getFileName() just return the string without extension. then, there would be a method to return all the different permutations without having to do weird coding.getBaseName()getExtention()getFileName()although due to nomenclature it might make more sense to have getBaseName() return the file name without extension, since getFileName() would kinda suggest it has a file extension on it.
up
1
glen at pld-linux dot org
7 years ago
similarly to basename, this method also suffers corruption if filename starts with non-ascii and locale not set to matching charset$ LC_ALL=C php -r 'var_dump(basename("ämb.er")); $fi = new SplFileInfo("äm.ber"); var_dump($fi->getBasename());';string(5) "mb.er"string(5) "m.ber"$ LC_ALL=en_US.UTF-8 php -r 'var_dump(basename("ämb.er")); $fi = new SplFileInfo("äm.ber"); var_dump($fi->getBasename());';string(7) "ämb.er"string(7) "äm.ber"
To Top