#8. 9 php Запись файла целиком: file_put_contents

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

file_put_contents(string filename, string data [, int flags [, resource context]])

В параметре filename задается имя файла, в который будет производиться запись данных, data представляет собой текстовую строку для записи в файл.

Необязательный параметр flags задает дополнительные режимы открытия файла, он может принимать значения:

  • FILE_USE_INCLUDE_PATH - задает поиск файла по каталогам, указанным в параметре include_path конфигурационного файла php.ini.
  • FILE_APPEND - включает режим добавления к файлу (по умолчанию существующий файл будет перезаписан).
  • LOCK_EX - блокирует файл во время записи так, что никто не может прочитать или изменить его.
  • комбинацию флагов, описанных выше, объединенных оператором |.

Последний необязательный параметр context задает контекст файла, который предназначен для дополнительной обработки потоков данных в файл и из файла (в данной книге контексты не рассматриваются).

Функция осуществляет последовательно открытие файла (как fopen), запись в него (как fwrite) и закрытие (как fclose), при этом не требуется работать с дескриптором файла.

В примере 1 приводится использование этой функции для формирования файла text.txt. В случае возникновения ошибки выводится соответствующее сообщение. Иначе выводится сообщение об успешной записи текста в файл, как на рис. 1.

Пример 1. Создание файла при помощи file_put_contents

<HTML>
    <HEAD>
        <TITLE>Создание файла при помощи file_put_contents</TITLE>
    </HEAD>
    <BODY>
        <CENTER>
            <H1>
                Создание файла при помощи file_put_contents
            </H1>
            <?php
                $text = "Просто\nнемного\nтекста.\n";
                  
                if (file_put_contents("text.txt", $text) == false) {
                    echo "Ошибка записи в файл 'text.txt'";
                } else {
                    echo "Текст записан в файл 'text.txt'.";
                }
            ?>
        </CENTER>
    </BODY>
</HTML>

В результате выполнения этого примера файл text.txt содержит следующие строки:

Просто
немного
текста.



Рис. 1. Формирование файла при помощи file_put_contents