При частых обращениях к файлам (для чтения или записи) может возникнуть такая ситуация, когда один процесс осуществляет запись в файл, а второй в это же время считывает данные из файла. Еще хуже, если данные считываются из файла, обрабатываются и обратно записываются. Таким образом, если не ставить блокировку на файлы на время их обработки, может возникнуть ситуация, при которой данные будут одновременно обрабатываться несколькими и процессами и могут быть искажены или потеряны.
Для блокировки и разблокировки файлов мы рекомендуем Вам использовать стандартную функцию PHP flock() с флагами LOCK_EX и LOCK_UN. Флаг LOCK_EX используется для эксклюзивной блокировки файла (т.е. доступ к файлу будет доступен только процессу, поставившему блокировку), а LOCK_UN - для снятия блокировки с файла.
                        
<?php
$fh=fopen("file.txt", "a+");    //открываем для чтения/записи
flock($fh, LOCK_EX);    //блокируем файл
fseek($fh, 0);    //ставим указатель на начало файла
while (!feof($fh)) $line. = fread($fh,2048);    //считываем из файла
//здесь производим обработку считанных данных
ftruncate($fh, 0);    //очищаем файл
fwrite($fh, $Res_$line);    //записываем в файл
flock($fh, LOCK_UN);    //снимаем блокировку
fclose($fh);    //закрываем файл
?> 
  Блокировка файлов от записи на PHP
 Блокировка файлов от записи на PHP