SplFileInfo::getFilename
(PHP 5 >= 5.1.2)
SplFileInfo::getFilename — Gets the filename
Description
public string SplFileInfo::getFilename
( void
)
Gets the filename without any path information.
Parameters
This function has no parameters.
Return Values
The filename.
Examples
Example #1 SplFileInfo::getFilename() example
<?php
$info = new SplFileInfo('foo.txt');
var_dump($info->getFilename());
$info = new SplFileInfo('/path/to/foo.txt');
var_dump($info->getFilename());
$info = new SplFileInfo('http://www.php.net/');
var_dump($info->getFilename());
$info = new SplFileInfo('http://www.php.net/svn.php');
var_dump($info->getFilename());
?>
The above example will output something similar to:
string(7) "foo.txt" string(7) "foo.txt" string(0) "" string(7) "svn.php"
- 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() - Возвращает путь к файлу в виде строки
Коментарии
It should be mentioned that the function returns the name of the directory if "filename" is of type "directory". Hence
<?php
$info = new SplFileInfo('/path/to/');
var_dump($info->getFilename());
?>
should return "to"
The function name is kind of misleading here and I am glad to have it tried.
I was trying to work out the difference between this and getBasename (http://php.net/manual/splfileinfo.getbasename.php) and the only difference I could really see was a special case of a file in the filesystem root with the root specified:
<?php
function getInfo($reference)
{
$file = new SplFileInfo($reference);
var_dump($file->getFilename());
var_dump($file->getBasename());
}
$test = [
'/path/to/file.txt',
'/path/to/file',
'/path/to/',
'path/to/file.txt',
'path/to/file',
'file.txt',
'/file.txt',
'/file',
];
foreach ($test as $file) {
getInfo($file);
}
// will return:
/*
string(8) "file.txt"
string(8) "file.txt"
string(4) "file"
string(4) "file"
string(2) "to"
string(2) "to"
string(8) "file.txt"
string(8) "file.txt"
string(4) "file"
string(4) "file"
string(8) "file.txt"
string(8) "file.txt"
string(9) "/file.txt" // see how getFilename includes the '/'
string(8) "file.txt" // but getBasename doesn't
string(5) "/file" // ditto getFilename
string(4) "file" // ditto getBasename
*/
?>
// Careful, output is different for `filename` vs `getFilename`. Inconsistent behaviour.
$path = 'test.txt';
$pathInfo = pathinfo($path);
echo '<pre>';
print_r($pathInfo);
echo '<br>';
echo '***************';
$splFileInfo = new SplFileInfo($path);
echo '<br>';
echo $splFileInfo->getBasename();
echo '<br>';
echo $splFileInfo->getFilename();