Метод appendToFile
Метод appendToFile класса Filesystem дописывает переданное содержимое в конец файла. Первым параметром передаётся путь к файлу, вторым - данные для записи. Если файл не существует, метод создаст его. Третий параметр задаёт права доступа к создаваемому файлу.
Синтаксис
appendToFile(string $filename, string|resource $content, bool $lock = false): void
Пример
Давайте допишем строку в конец существующего файла:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(): Response
{
$fs = new Filesystem();
$fs->appendToFile('/var/www/article.txt', 'hello');
return new Response('done');
}
}
?>
Результат выполнения кода:
"done"
Пример
Давайте допишем несколько строк по очереди и прочитаем итоговое содержимое:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(): Response
{
$fs = new Filesystem();
$fs->appendToFile('/var/www/article.txt', 'abcde');
$fs->appendToFile('/var/www/article.txt', 'user');
$res = $fs->readFile('/var/www/article.txt');
return new Response($res);
}
}
?>
Результат выполнения кода:
"abcdeuser"
Пример
Давайте допишем данные из потока ресурса в конец файла:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(): Response
{
$fs = new Filesystem();
$stream = fopen('php://memory', 'r+');
fwrite($stream, 'hello');
rewind($stream);
$fs->appendToFile('/var/www/article.txt', $stream);
fclose($stream);
$res = $fs->readFile('/var/www/article.txt');
return new Response($res);
}
}
?>
Результат выполнения кода:
"hello"
Смотрите также
-
класс
Filesystem,
который предоставляет методы для работы с файлами и каталогами -
метод
dumpFile,
который перезаписывает содержимое файла -
метод
readFile,
который читает содержимое файла -
метод
exists,
который проверяет наличие файла или каталога