SplFileInfo::getBasename
(PHP 5 >= 5.2.2, PHP 7)
SplFileInfo::getBasename — Получает базовое имя файла
Описание
public string SplFileInfo::getBasename
([ string
$suffix
] )Этот метод возвращает базовое имя файла, каталога, или ссылки без информации о пути.
Список параметров
-
suffix
-
Дополнительный суффикс будет исключен из базового имени.
Возвращаемые значения
Возвращает базовое имя, без информации о пути.
Примеры
Пример #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"
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Другие базовые расширения
- Стандартная библиотека PHP (SPL)
- Обработка файлов
- Функция SplFileInfo::__construct() - Создает новый объект SplFileInfo
- Функция SplFileInfo::getATime() - Получает время последнего обращения к файлу
- Функция SplFileInfo::getBasename() - Получает базовое имя файла
- Функция SplFileInfo::getCTime() - Возвращает время последнего изменения индексного дескриптора файла
- Функция SplFileInfo::getExtension() - Получает расширение файла
- Функция SplFileInfo::getFileInfo() - Получает объект SplFileInfo для файла
- Функция SplFileInfo::getFilename() - Получает имя файла
- Функция SplFileInfo::getGroup() - Получает группу файла
- Функция SplFileInfo::getInode() - Получение индексного узла для файла
- Функция SplFileInfo::getLinkTarget() - Получение пути по ссылке
- Функция SplFileInfo::getMTime() - Получает время последнего изменения
- Функция SplFileInfo::getOwner() - Определяет владельца файла
- Функция SplFileInfo::getPath() - Получение пути без имени файла
- Функция SplFileInfo::getPathInfo() - Получение объекта SplFileInfo для заданного пути
- Функция SplFileInfo::getPathname() - Определение пути к файлу
- Функция SplFileInfo::getPerms() - Получает список разрешений для файла
- Функция SplFileInfo::getRealPath() - Определяет абсолютный путь к файлу
- Функция SplFileInfo::getSize() - Получает размер файла
- Функция SplFileInfo::getType() - Получает тип файла
- Функция SplFileInfo::isDir() - Сообщает, является ли файл каталогом
- Функция SplFileInfo::isExecutable() - Сообщает, является ли файл исполняемым
- Функция SplFileInfo::isFile() - Сообщает, ссылается ли объект на обычный файл
- Функция SplFileInfo::isLink() - Сообщает, является ли файл ссылкой
- Функция SplFileInfo::isReadable() - Сообщает, является ли файл доступным для чтения
- Функция SplFileInfo::isWritable() - Сообщает, является ли элемент доступным для записи
- Функция SplFileInfo::openFile() - Получает объект SplFileObject для файла
- SplFileInfo::setFileClass
- SplFileInfo::setInfoClass
- Функция SplFileInfo::__toString() - Возвращает путь к файлу в виде строки
Коментарии
If you want to get only filename and dont want to use weird:
<?php
pathinfo($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...
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.
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"