Функция flock() блокирует или освобождает файл.
В случае успеха функция возвращает TRUE. В случае неудачи возвращает FALSE.
flock(файл,блокировка,блок)
параметр | описывать |
---|---|
файл | Необходимый. Указывает открытый файл, который необходимо заблокировать или освободить. |
замок | Необходимый. Указывает, какой тип блокировки использовать. Возможные значения: LOCK_SH — общая блокировка (программа чтения). Разрешить другим процессам доступ к файлу. LOCK_EX — Эксклюзивная блокировка (запись программы). Запретите другим процессам доступ к файлу. LOCK_UN — снять общую или эксклюзивную блокировку. LOCK_NB — избегать блокировки других процессов при блокировке. |
блокировать | Необязательный. Если установлено значение 1, во время блокировки блокируются другие процессы. |
Примечание. Эти блокировки используются только в текущем процессе PHP. Если разрешения позволяют, другие процессы могут изменить или удалить файл, заблокированный PHP.
Примечание: flock() является обязательным в Windows.
Совет: Вы можете снять операцию блокировки с помощью функции fclose(), которая будет вызываться автоматически после завершения выполнения скрипта.
<?php$file = fopen("test.txt","w+");// эксклюзивная блокировка if (flock($file,LOCK_EX)) { fwrite($file,"Write Something"); // снимаем блокировку flock( $file,LOCK_UN); }else { echo "Ошибка блокировки файла!"; }fclose($file);?>