Функция file_put_contents в PHP — что это? Описание, примеры

В языке программирования PHP file_put_contents - функция, которая записывает данные в файл с эквивалентом fopen (), fwrite (), напротив операндов fread () и fclose (). Принимает на вход два параметра: имя файла и содержимое для записи, с третьим необязательным параметром, определяющим дополнительные характеристики операции. Если вычисление file_put_contents в PHP успешно завершено, оно возвращает количество байтов, записанных в файл.

File_put_contents в PHP — что это? Примеры

Алгоритм:

  • в случае, когда USE_INCLUDE предустановлен, проверяется путь включения копии *filename*;
  • создается файл, если он не существует;

  • открывается файл;

  • блокируется файл, если установлен LOCK_EX;

  • скрипт переходит в конец файла, в противном случае содержимое очищается.

  • запись данных в файл;

  • закрытие файла и разблокировка.

Данный операнд возвращает число символов, записанных в файл при успешном завершении, или FALSE при сбое.

Применять функционал очень просто. Пример:

<? PHP
$ myarray [] = "Это строка первая";
$ myarray [] = "Это строка вторая";
$ myarray [] = "Это строка три";
$ mystring = implode ("\ n", $ myarray);
$ numbytes = file_put_contents ($ filename, $ mystring);
print "$ numbytes bytes записано \ n";
?>file put contents php

Помните, что сначала нужно установить имя файла $. Кроме того, скрипт прост, он должен выводить «52 байта», который представляет собой сумму трех строк текста плюс два новых строковых символа, используемых для implode () массив. Новый символ линии на самом деле является только одним символом внутри файлов, тогда как PHP представляет его с использованием двух \ и n.

Вы можете передать третий параметр file_put_contents в PHP, чтобы добавить текст в ваш второй параметр к существующему тексту в файле. Если вы не используете FILE_APPEND, существующий текст будет очищен и заменен, что не всегда является желаемым поведением скрипта.

Возможные ошибки

Могут возникнуть сложности при написании скрипта для почты, который удаленно проверяет наш почтовый сервер. Ему нужно загрузить вложения и скопировать их в каталог на локальном веб-сервере интрасети.php warning file put contents

Скрипт правильно просматривает почту, но при работе с вложениями может возникнуть проблема:

PHP Warning: file_put_contents: не удалось открыть поток: разрешено в C:\inetpub\wwwroot\quotation_test\log\log_mailcheck.php в строке 107.

Решение вопроса — в проверке директивы open_basedir в php.ini. Нужно выяснить, существует ли каталог C:\inetpub\wwwroot\quotation_test\log\scans?, а при необходимости добавить его.