SplFileObject::flock

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::flockБлокирует файл методом переносимой блокировки

Описание

public SplFileObject::flock(int $operation, int &$wouldBlock = null): bool

Блокирует или разблокирует файл тем же переносимым способом, что и функция flock().

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

operation

operation принимает следующие значения:

  • LOCK_SH для получения разделяемой блокировки (чтение).
  • LOCK_EX для получения эксклюзивной блокировки (запись).
  • LOCK_UN для снятия блокировки (разделяемой или эксклюзивной).

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

wouldBlock

Получает значение true, если блокировка будет блокирующей (в переменную errno будет записан код ошибки EWOULDBLOCK).

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

Возвращает true в случае успешного выполнения или false, если возникла ошибка.

Примеры

Пример #1 Пример использования метода SplFileObject::flock()

<?php

$file
= new SplFileObject("/tmp/lock.txt", "w");
if (
$file->flock(LOCK_EX)) { // Выполняем эксклюзивную блокировку
$file->ftruncate(0); // Очищаем файл
$file->fwrite("Пишем что-нибудь сюда\n");
$file->flock(LOCK_UN); // Снимаем блокировку
} else {
echo
"Не удалось получить блокировку!";
}

?>

Смотрите также

  • flock() - Блокирует файл методом переносимой рекомендательной блокировки

add a note add a note

User Contributed Notes 1 note

up
4
digitalprecision at gmail dot com
13 years ago
For the record, the example given here has an explicit command to truncate the file, however with a 'write mode' of 'w', it will do this for you automatically, so the truncate call is not needed.
To Top