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
*/
?>
PHP.mk документација
SplFileInfo::getFilename
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
splfileinfo.getfilename.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
splfileinfo.getfilename.php
SplFileInfo::getFilename
Референца за `splfileinfo.getfilename.php` со подобрена типографија и навигација.
SplFileInfo::getFilename
(PHP 5 >= 5.1.2, PHP 7, PHP 8)
SplFileInfo::getFilename — Ја добива името на датотеката
= NULL
Ја добива името на датотеката без информации за патеката.
Параметри
Оваа функција нема параметри.
Вратени вредности
Името на датотеката.
Примери
Пример #1 SplFileInfo::getExtension() 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());
?>Горниот пример ќе прикаже нешто слично на:
string(7) "foo.txt" string(7) "foo.txt" string(11) "www.php.net" string(7) "svn.php"
Белешки од корисници 3 белешки
Алекс Расел ¶
пред 10 години
wloske at yahoo dot de ¶
пред 16 години
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.
khalidhameedkht at gmail dot com ¶
пред 9 години
// 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();