Сброс вывода в файл

Задача
Необходимо принудительно сбросить всю информацию из буфера в файл с нужным дескриптором.

Решение
Вызовите функцию fflush():

fwrite($fh,'There are twelve pumpkins in my house.');
fflush($fh);

Это гарантирует, что строка «There are twelve pumpkins in my house.» записывается в файл с дескриптором $fh.

Обсуждение
Из соображений эффективности системные библиотеки ввода/вывода в большинстве случаев не записывают в файл, когда получают такую команду. Вместо этого они накапливают записи в буфере и записывают их все на диск одновременно. Применение функции fflush() форсирует фактическую запись информации, ожидающей в буфере, на диск.

Сброс вывода может быть особенно полезен при создании журнала доступа или журнала активности. Вызов функции fflush() после каждого сообщения в файл журнала гарантирует, что любой (человек или программа), кто следит за файлом журнала, увидит сообщение так скоро, как это возможно.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Блокировка файла
Выбор случайной строки из файла
Запись в несколько файловых дескрипторов одновременно
Запись в стандартный поток вывода
Непосредственная модификация файла без временной копии

Вернуться в раздел: PHP / 18. Файлы