If you want to get only filename and dont want to use weird:
<?php
pathinfo($file->getBasename(), PATHINFO_FILENAME);
?>
You can use (also weird but ~better looking):
<?php
$file->getBasename('.'.$file->getExtension());
?>
PS: Why there is getFilename ? when it returns ~same stuff as getBasename ? I have to do this ugly stuff^ instead of simple getFilename...SplFileInfo::getBasename
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
SplFileInfo::getBasename
Референца за `splfileinfo.getbasename.php` со подобрена типографија и навигација.
SplFileInfo::getBasename
(PHP 5 >= 5.2.2, PHP 7, PHP 8)
SplFileInfo::getBasename — Ја добива основното име на датотеката
= NULL
Овој метод го враќа основното име на датотеката, директориумот или врската без информации за патеката.
SplFileInfo::getFilename() е свесна за локалот, така што за да го види правилното основно име со патеки со повеќебајтни знаци, соодветниот локал мора да биде поставен со користење на setlocale() function.
Параметри
suffix-
Опционален суфикс што треба да се изостави од вратеното основно име.
Вратени вредности
Го враќа основното име без информации за патеката.
Примери
Пример #1 SplFileInfo::getFilename() example
<?php
$info = new SplFileInfo('file.txt');
var_dump($info->getBasename());
$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename());
$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename('.txt'));
?>Горниот пример ќе прикаже нешто слично на:
string(8) "file.txt" string(8) "file.txt" string(4) "file"
Белешки од корисници 3 белешки
Agreed, this is just silly. why not make getFileName() just return the string without extension. then, there would be a method to return all the different permutations without having to do weird coding.
getBaseName()
getExtention()
getFileName()
although due to nomenclature it might make more sense to have getBaseName() return the file name without extension, since getFileName() would kinda suggest it has a file extension on it.similarly to basename, this method also suffers corruption if filename starts with non-ascii and locale not set to matching charset
$ LC_ALL=C php -r 'var_dump(basename("ämb.er")); $fi = new SplFileInfo("äm.ber"); var_dump($fi->getBasename());';
string(5) "mb.er"
string(5) "m.ber"
$ LC_ALL=en_US.UTF-8 php -r 'var_dump(basename("ämb.er")); $fi = new SplFileInfo("äm.ber"); var_dump($fi->getBasename());';
string(7) "ämb.er"
string(7) "äm.ber"