Php fwrite дописать в файл

Обновлено: 06.07.2024

fwrite() записывает содержимое string в файловый поток handle .

Список параметров

Указатель ( resource ) на файл, обычно создаваемый с помощью функции fopen() .

Если передан аргумент length , запись остановится после того, как length байтов будут записаны или будет достигнут конец строки string , смотря что произойдёт раньше.

Учтите, что если указан аргумент length , то директива magic_quotes_runtime будет проигнорирована, и строка string не будет очищена от слешей.

Возвращаемые значения

fwrite() возвращает количество записанных байт или false в случае ошибки.

Примечания

Замечание:

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

<?php
function fwrite_stream ( $fp , $string ) for ( $written = 0 ; $written < strlen ( $string ); $written += $fwrite ) $fwrite = fwrite ( $fp , substr ( $string , $written ));
if ( $fwrite === false ) return $written ;
>
>
return $written ;
>
?>

Замечание:

Если дескриптор handle был открыт функцией fopen() в режиме "добавление в конец", то вызовы fwrite() будут атомарными (за исключением случая, если размер string превысит размер блока файловой системы, на некоторых платформах, и пока файл хранится на локальной файловой системе). То есть нет необходимости блокировать ресурс с помощью flock() перед вызовом fwrite() , и все данные будут записаны без прерываний.

Замечание:

При повторной записи в файловый указатель, данные будут добавлены в конец содержимого файла:

<?php
$fp = fopen ( 'data.txt' , 'w' );
fwrite ( $fp , '1' );
fwrite ( $fp , '23' );
fclose ( $fp );

// содержимое 'data.txt' теперь 123, а не 23!
?>

Примеры

<?php
$filename = 'test.txt' ;
$somecontent = "Добавить это к файлу\n" ;

// Вначале давайте убедимся, что файл существует и доступен для записи.
if ( is_writable ( $filename ))

// В нашем примере мы открываем $filename в режиме "записи в конец".
// Таким образом, смещение установлено в конец файла и
// наш $somecontent допишется в конец при использовании fwrite().
if (! $handle = fopen ( $filename , 'a' )) echo "Не могу открыть файл ( $filename )" ;
exit;
>

// Записываем $somecontent в наш открытый файл.
if ( fwrite ( $handle , $somecontent ) === FALSE ) echo "Не могу произвести запись в файл ( $filename )" ;
exit;
>

PHP fwrite() используется для записи строки в открытый файловый поток handle в бинарно-безопасном формате. Поэтому можно использовать эту функцию для записи в открытый файл.

Пример применения функции fwrite() :

Возвращаемые значения

Функция возвращает количество записанных байтов или значение FALSE ( в случае ошибки ).

Дополнительная информация

Действие функции завершается в конце файла или при достижении определённой длины.

Версии и история изменений PHP

Функция fwrite() доступна в версиях PHP 4 , 5 и 7 .

Связанные функции

Связанные с fwrite PHP функции , о которых следует знать:

Параметры

handle

Указатель файловой системы, который обычно создается при помощи функции fopen() . Параметр указывает на открытый файл, в который нужно произвести запись. Это обязательный параметр.

string

Параметр string используется для указания записываемой строки. Это обязательный параметр.

length

Параметр length используется для указания максимального количества записываемых байт. Если параметр length задан, то запись прекратится при достижении заданного количества байт или при окончании строки. Это необязательный параметр.

fwrite PHP пример:

Дополнительные советы

Функция возвращает значение FALSE только в том случае, если вы ввели неверные аргументы. При любой другой ошибке возвратное значение меньше strlen ( $string ), которым в большинстве случаев является 0 . Зацикливание повторных вызовов функции fwrite() будет происходить до тех пор, пока не будет достигнуто нужное число записываемых байт или ожидание возврата значения FALSE при разорванном соединении приведут к бесконечному циклу. Вы должны проверить возвратное значение fwrite PHP и либо немедленно отменить операцию, либо указать максимальное количество повторных попыток.

Ниже приведён пример из документации. Это плохой код, так как broken pipe приведет к бесконечному зацикливанию функции fwrite() с возвратным значением 0 . Цикл прерывается только при возврате функцией fwrite() значения false или успешной записи всех байт. В случае возникновения ошибки вы получите бесконечный цикл.

Пожалуйста, опубликуйте ваши комментарии по текущей теме материала. Мы очень благодарим вас за ваши комментарии, дизлайки, отклики, лайки, подписки!

Пожалуйста, оставьте ваши отзывы по текущей теме материала. За комментарии, дизлайки, подписки, отклики, лайки низкий вам поклон!

Примеры сохранения и чтения текстовых данных и массивов в файлы.

Сохранение в файл

Функция file_put_contents() записывает содержимое переменной в файл, если файла не существует. то пытается его создать, если существует то полностью перезапишет его.

File_put_contents:

Fopen / fwrite:

Набор функций fopen, fwrite, fclose предназначены для более гибкой работы с файлами.

  • fopen – открытие или создание файла.
  • fwrite – запись данных.
  • fclose – закрытие файла.

Возможные режимы fopen():

Mode Описание
r Открывает файл только для чтения, помещает указатель в начало файла.
r+ Открывает файл для чтения и записи, помещает указатель в начало файла.
w Открывает файл только для записи, помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует – пробует его создать.
w+ Открывает файл для чтения и записи, помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует – пытается его создать.
a Открывает файл только для записи, помещает указатель в конец файла. Если файл не существует – пытается его создать.
a+ Открывает файл для чтения и записи, помещает указатель в конец файла. Если файл не существует – пытается его создать.
x Создаёт и открывает только для записи; помещает указатель в начало файла. Если файл уже существует, вызов fopen() закончится неудачей, вернёт false и выдаст ошибку. Если файл не существует, попытается его создать.
x+ Создаёт и открывает для чтения и записи, в остальном имеет то же поведение, что и « x ».
c Открывает файл только для записи. Если файл не существует, то он создаётся. Если же файл существует, то он не обрезается (в отличие от « w »), и вызов к этой функции не вызывает ошибку (также как и в случае с « x »). Указатель на файл будет установлен на начало файла.
c+ Открывает файл для чтения и записи, в остальном имеет то же поведение, что и « c ».

Доступно в место fwrite() используют fputs() , разницы ни какой т.к. эта функция является псевдонимом.

Favorite

Добавить в избранное

Главное меню » Программирование » PHP » Запись в файл на PHP с помощью fwrite()

(1 оценок, среднее: 5,00 из 5)

Как скачать и сохранить удаленное изображение с помощью PHP

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

Использование функции fwrite():

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

Синтаксис:

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

Пример-1: Запишите контент, создав новый файл

В следующем примере показан способ создания нового файла с помощью функции fwrite(). Функция fopen() используется в сценарии для создания обработчика файлов для записи нового текстового файла с именем newfile.txt. Затем переменная $ file_handler используется в функции fwrite() для записи содержимого переменной $ data в файл. Функция fclose() используется для закрытия файла, чтобы освободить ресурс, выделенный функцией fopen(). Функция file_get_contents() используется для чтения содержимого newfile.txt, чтобы подтвердить, что файл был создан и содержимое было правильно записано в этот файл.

Читать Выполнить команду оболочки в PHP с помощью exec()

Пример-2: добавить содержимое в существующий файл

В следующем примере показано, как добавить содержимое любого существующего файла с помощью функции fwrite(). Текстовый файл с именем newfile.txt, созданный в предыдущем примере, был открыт в режиме добавления с помощью функции fopen(). Затем функция fwrite() используется для добавления содержимого $data в конец файла. Как и в предыдущем примере, функция file_get_contents() используется для проверки обновленного содержимого newfile.txt.

Вывод показывает, что текст «Это вторая строка файла» был добавлен в конец текстового файла.

Пример-3: записать определенное количество байтов в файл

Конкретные строковые данные используются для записи в текстовый файл в двух предыдущих примерах. Но если вы хотите записать определенные байты данных в файл, вы должны использовать третий аргумент функции fwrite(). В следующем примере показан способ записи конкретных байтов данных в новый текстовый файл. Обработчик файла с именем $file_handler используется для создания нового файла с именем newfile2.txt, а функция fwrite() используется для записи 35 байтов данных в этот файл. Здесь функция file_get_contents() используется для чтения содержимого файла, как в предыдущем примере.

Читать Как удалить Anaconda3 из Kali Linux (Linux/CentOS/Ubuntu/Windows/macOS и т. д.)

Заключение:

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте также: