SplFileInfo::getBasename

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

SplFileInfo::getBasenameObtém o nome base do arquivo

Descrição

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

Este método retorna o nome base do arquivo, diretório ou link sem informações de caminho.

Cuidado

SplFileInfo::getBasename() é sensível ao local, então para visualizar o nome base correto com caminhos de caracteres multibyte, o local correspondente deve ser definido usando a função setlocale().

Parâmetros

suffix

Sufixo opcional a ser omitido do nome base retornado.

Valor Retornado

Retorna o nome base sem informações de caminho.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::getBasename()

<?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'));
?>

O exemplo acima produzirá algo semelhante a:

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

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 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