©
This document uses PHP Chinese website manual Release
(PHP 5 >= 5.1.2)
SplFileInfo::getFilename — Gets the filename
Gets the filename without any path information.
此函数没有参数。
The filename.
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 ());
?>
以上例程的输出类似于:
string(7) "foo.txt" string(7) "foo.txt" string(0) "" string(7) "svn.php"
[#1] Alex Russell [2015-09-28 15:39:28]
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:
?>
[#2] wloske at yahoo dot de [2009-10-19 09:12:53]
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.