fwrite - Бинарно-безопасная запись в файл
Вернуться к: Файловая система
fwrite
(PHP 4, PHP 5, PHP 7)
fwrite — Бинарно-безопасная запись в файл
Описание
$handle
, string $string
[, int $length
] )
fwrite() записывает содержимое
string
в файловый поток
handle
.
Список параметров
-
handle
-
Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().
-
string
-
Записываемая строка.
-
length
-
Если передан аргумент
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;
}
?>
Замечание:
В системах, различающих двоичные и текстовые файлы (к примеру, Windows), файл должен быть открыт используя флаг 'b' в конце аргумента mode функции fopen().
Замечание:
Если дескриптор
handle
был открыт функцией fopen() в режиме "записи в конец", то вызовы fwrite() будут атомарными (за исключением случая, еслиstring
размер блока файловой системы, на некоторых платформах, и пока файл хранится на локальной файловой системе). Т.е. нет необходимости блокировать ресурс с помощью flock() перед вызовом fwrite() - все данные будут записаны без прерываний.
Замечание:
При повторной записи в файловый указатель данные будут добавлены в конец содержимого файла:
<?php
$fp = fopen('data.txt', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);
// содержимое 'data.txt' теперь 123, а не 23!
?>
Примеры
Пример #1 Простой пример использования fwrite()
<?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;
}
echo "Ура! Записали ($somecontent) в файл ($filename)";
fclose($handle);
} else {
echo "Файл $filename недоступен для записи";
}
?>
Смотрите также
- fread() - Бинарно-безопасное чтение файла
- fopen() - Открывает файл или URL
- fsockopen() - Открывает соединение с интернет сокетом или доменным сокетом Unix
- popen() - Открывает файловый указатель процесса
- file_get_contents() - Читает содержимое файла в строку
Вернуться к: Файловая система