Функция PHP flock()

Определение и использование

Функция flock() блокирует или разблокирует файл.

Если успешен, возвращает true. Если失败, возвращает false.

Синтаксис

flock(файл,блокировка,блок)
Параметры Описание
файл Обязателен. Определяет открытые файлы, которые необходимо заблокировать или разблокировать.
блокировка Обязателен. Определяет, какой тип блокировки использовать.
блок Доступно. Если установлено в 1 или true, то при блокировке блокирует другие процессы.

Описание

Операция flock() файл Должен быть уже открытым указателем файла.

блокировка Параметр может быть одним из следующих значений:

  • Для получения совместно используемого.lock (для программ чтения), установите блокировка LOCK_SH (установлено в версиях PHP 4.0.1 и раньше).
  • Для получения эксклюзивного.lock (для программ записи), установите блокировка LOCK_EX (установлено в версиях PHP 4.0.1 и раньше).
  • Для/releases lock (будь то совместно используемый или эксклюзивный), установите блокировка LOCK_UN (установлено в версиях PHP 4.0.1 и раньше).
  • Если не хотите, чтобы flock() блокировался при блокировке, установите блокировка Добавьте LOCK_NB (установлено в версиях PHP 4.0.1 и раньше).

Советы и комментарии

Совет:Можете использовать fclose() Для/releases lock операция кода также вызывается автоматически по завершении выполнения.

Комментарий:Поскольку flock() требует указателя файла, возможно, потребуется использовать специальный файл блокировки для защиты доступа к файлу, который планируется открыть в режиме записи (добавьте "w" или "w+" в функцию fopen()).

Пример

<?php
$file = fopen("test.txt","w+");
// exclusive lock
if (flock($file,LOCK_EX))
  {
  fwrite($file,"Write something");
  // release lock
  flock($file,LOCK_UN);
  }
else
  {
  echo "Error locking file!";
  }
fclose($file);
?>