Метод getBasename
Метод getBasename класса File возвращает базовое имя файла, то есть имя файла без пути к директории, в которой он находится. Метод не принимает параметров и возвращает строку. Если файл имеет расширение, оно также будет включено в возвращаемое значение.
Синтаксис
$file->getBasename(): string
Пример
Давайте создадим объект File и получим базовое имя файла:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentHttpFoundationFileFile;
class FileController extends AbstractController
{
public function index(): Response
{
$file = new File('/var/www/project/uploads/article.txt');
return new Response($file->getBasename());
}
}
?>
Результат выполнения кода:
article.txt
Пример
Давайте получим базовое имя файла без расширения:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentHttpFoundationFileFile;
class FileController extends AbstractController
{
public function index(): Response
{
$file = new File('/var/www/project/uploads/user.json');
return new Response(pathinfo($file->getBasename(), PATHINFO_FILENAME));
}
}
?>
Результат выполнения кода:
user
Пример
Давайте выведем базовое имя файла внутри Twig-шаблона:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentHttpFoundationFileFile;
class FileController extends AbstractController
{
public function index(): Response
{
$file = new File('/var/www/project/uploads/hello.txt');
return $this->render('file/index.html.twig', [
'basename' => $file->getBasename(),
]);
}
}
?>
Содержимое Twig-шаблона:
<p>{{ basename }}</p>
Результат выполнения кода:
<p>hello.txt</p>
Пример
Давайте сравним результат работы методов getBasename и getPathname:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentHttpFoundationFileFile;
class FileController extends AbstractController
{
public function index(): Response
{
$file = new File('/var/www/project/uploads/article.txt');
$res = [
'basename' => $file->getBasename(),
'pathname' => $file->getPathname(),
];
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода:
["basename" => "article.txt", "pathname" => "/var/www/project/uploads/article.txt"]
Смотрите также
-
класс
File,
который представляет файл или директорию -
метод
getFilename,
который возвращает имя файла без расширения -
метод
getExtension,
который возвращает расширение файла -
метод
getPathname,
который возвращает полный путь к файлу