Добро пожаловать на форум PHP программистов!
За последние 24 часа нас посетили 9716 программистов и 478 роботов. Сейчас ищут 222 программиста ...
Приступая к работе

fwrite - Бинарно-безопасная запись в файл

Вернуться к: Файловая система

fwrite

(PHP 4, PHP 5, PHP 7)

fwriteБинарно-безопасная запись в файл

Описание

int fwrite ( resource $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($fpsubstr($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() - Читает содержимое файла в строку



Вернуться к: Файловая система

© 2020 «PHP.RU — Сообщество PHP-Программистов»
Главная | Форум | Реклама на сайте | Контакты VIP Сувениры
Разработка компании ODware