Функция 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); ?>