Блокировка и удаление файлов онлайн урок.


При работе с файлами (создание, чтение, запись) могут иметь место ситуации, когда файл будет открыт разными пользователями одновременно. Это может привести к сбою в системе хранения информации. Потому необходимо применять специальную блокировку, которая позволит предотвратить одновременные операции при работе с файлом.

Блокировка осуществляется при помощи функции flock($handler, $action). Параметр $hadler - это указатель на файл, который можно получить при помощи fopen(). В качестве $action указывают одно из допустимых значений (констант):

  • LOCK_SH - разделяемая блокировка (для чтения). Эта блокировка позволяет читать файл нескольким процессам. При этом, если необходима запись в файл, то это осуществляется последовательно.

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

  • LOCK_UN - снятие блокировки


Рассмотрим пример с эксклюзивной блокировкой:



Замечание. Блокировку необходимо осуществлять после открытия файла, а снятие блокировки - перед его закрытием.

Удаление файлов осуществляется при помощи функции unlink($filename). В качестве параметра подставляется путь к файлу.

unlink('test.txt'); // delete


Замечание. При попытке удалить заблокированный файл, интерпретатор выведет замечание и файл удален не будет.