SplFileInfo::getFilename

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getFilename获取文件名

描述

public SplFileInfo::getFilename(): string

获取文件名,不包含任何路径信息。

参数

此函数没有参数。

返回值

文件名。

示例

示例 #1 SplFileInfo::getFilename() 示例

<?php
$info
= new SplFileInfo('foo.txt');
var_dump($info->getFilename());

$info = new SplFileInfo('/path/to/foo.txt');
var_dump($info->getFilename());

$info = new SplFileInfo('https://php.net/');
var_dump($info->getFilename());

$info = new SplFileInfo('https://php.net/svn.php');
var_dump($info->getFilename());
?>

上面的示例将输出类似于

string(7) "foo.txt"
string(7) "foo.txt"
string(0) ""
string(7) "svn.php"

参见

添加说明

用户贡献说明 3 个说明

Alex Russell
8 年前
我试图找出这个函数和 getBasename (https://php.net/manual/splfileinfo.getbasename.php) 之间的区别,我唯一能看到的区别是文件系统根目录中文件的一个特殊情况,其中指定了根目录

<?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);
}

// 将返回:
/*
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" // 请注意 getFilename 包含 '/'
string(8) "file.txt" // 但 getBasename 没有

string(5) "/file" // getFilename 同样如此
string(4) "file" // getBasename 同样如此
*/

?>
wloske at yahoo dot de
14 年前
应该提到的是,如果“文件名”是“目录”类型,则该函数将返回目录的名称。 因此

<?php
$info
= new SplFileInfo('/path/to/');
var_dump($info->getFilename());
?>

应该返回“to”

函数名称在这里有点误导,我很高兴能尝试它。
khalidhameedkht at gmail dot com
7 年前
// 注意,`filename` 与 `getFilename` 的输出不同。 不一致的行为。

$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();
To Top