Замечание: при разработки приложений под Windows обязательно нужно использовать именно функцию flock().
flock() оперирует handle, который обязательно должен указывать на открытый файл. operation принимает одно из следующих значений:
- Для организации совместного доступа (чтения), установите operation в LOCK_SH.
- Для организации эксклюзивного доступа (запись), установите operation в LOCK_EX.
- Для снятия блокировки (совместной или эксклюзивного), установите operation в LOCK_UN.
flock() позволяет создавать простейшие модели чтения/записи, которые могут быть использованы на любой платформе (включаю большинство UNIX-производных и даже Windows). Необязательный третий аргумент устанавливается в TRUE если блокировка будет задерживать выполнение программы.
Возвращает TRUE в случае успешного завершения, FALSE в случае возникновения ошибки.
Пример кода
<?php
$fp = fopen("/tmp/lock.txt", "w+");
if (flock($fp, LOCK_EX)) { // do an exclusive lock
fwrite($fp, "Write something here\n");
flock($fp, LOCK_UN); // release the lock
}
else
{
echo "Couldn't lock the file !";
}
fclose($fp);
?>