SplFileInfo::getFilename

(PHP 5 >= 5.1.2)

SplFileInfo::getFilenameGets 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" 

See Also

Коментарии

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.
2009-10-19 12:12:53
http://php5.kiev.ua/manual/ru/splfileinfo.getfilename.html
Автор:
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
*/

?>
2015-09-28 18:39:28
http://php5.kiev.ua/manual/ru/splfileinfo.getfilename.html
// 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();
2016-12-14 14:06:52
http://php5.kiev.ua/manual/ru/splfileinfo.getfilename.html

    Поддержать сайт на родительском проекте КГБ