SplFileInfo::getBasename

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

SplFileInfo::getBasenameПолучает базовое имя файла

Описание

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

Этот метод возвращает базовое имя файла, каталога или ссылки без информации о пути.

Список параметров

suffix

Необязательный суффикс, который будет исключён из базового имени.

Предостережение

SplFileInfo::getBasename() учитывает локаль, поэтому, чтобы увидеть корректное базовое имя файла с многобайтовыми символами в пути, соответствующая локаль должна быть установлена с помощью функции setlocale().

Возвращаемые значения

Возвращает базовое имя без информации о пути.

Примеры

Пример #1 Пример использования 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'));
?>

Вывод приведённого примера будет похож на:

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

Смотрите также

Добавить

Примечания пользователей 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