PHP 8.5.0 Alpha 1 available for testing

SplFileInfo::getFilename

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

SplFileInfo::getFilenameObtiene el nombre del fichero

Descripción

public SplFileInfo::getFilename(): string

Obtiene el nombre del fichero sin ningún tipo de información de la ruta de acceso.

Parámetros

Esta función no contiene ningún parámetro.

Valores devueltos

El nombre del fichero.

Ejemplos

Ejemplo #1 SplFileInfo::getFilename() ejemplo

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

Resultado del ejemplo anterior es similar a :

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

Ver también

add a note

User Contributed Notes 3 notes

up
17
Alex Russell
9 years ago
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
*/

?>
up
7
wloske at yahoo dot de
15 years ago
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.
up
-4
khalidhameedkht at gmail dot com
8 years ago
// 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();
To Top