English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP базовый курс

PHP высший курс

PHP & MySQL

PHP справочник

Использование и примеры PHP flock() функции

    PHP Файловая система справочник

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

Синтаксис

bool flock ( resource $handle , int $operation [, int &$wouldblock ] )

Функция flock() позволяет нам выполнять простую модель читателя/писателя, которая почти доступна на всех платформах.

Комментарии и советы

Комментарий: эти блокировки используются только в текущем PHP-процессе. Если права доступа позволяют, другие процессы могут изменить или удалить файл, блокированный PHP.
Комментарий: flock() в Windows обязательна.
Совет: блокировка может быть освобождена с помощью fclose(), и она автоматически вызывается при завершении выполнения скрипта.

Параметры

ПараметрыОписание
handle
Обязателен. Указать открытый файл, который нужно блокировать или освободить.
operation
Обязателен. Указать тип блокировки, который нужно использовать.

Возможные значения:

  • LOCK_SH -共享ная блокировка (для программы чтения). Разрешает доступ других процессов к файлу.

  • LOCK_EX - эксклюзивная блокировка (для программы записи). Предотвращает доступ других процессов к файлу.

  • LOCK_UN - освободить共享ную или эксклюзивную блокировку

  • LOCK_NB - избегать блокировки других процессов при блокировке.

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

wouldblock
Дополнительное. Если установлено в 1, то при блокировке будет блокировать другие процессы.

Онлайн пример

Пример использования эксклюзивной блокировки flock LOCK_EX:

<?php
   $file = fopen("/PhpProject/sample.txt", "w+");
   // Электронная блокировка
   if(flock($file, LOCK_EX)) {
      fwrite($file, "flock function");
      
       // Освобождение блокировки
      flock($file, LOCK_UN);
      echo $file;
   } else {
      echo "Заключение файла失败!";
   }
   fclose($file);
?>

PHP Файловая система справочник