cdi
Новичок
использование flock()
PHP:
/*Здравствуйте
Использование flock() Дмитрий Котеров предлогает сл. образом (на примере счётчика)
*/
$f=fopen('counter.dat','a+');
flock($f,LOCK_EX); // Говорим, что дальше будем работать только мы
$count=fread($f,100); // Читаем значение, сохраненное в файле
@$count=$count+1; // Увеличиваем его на 1 (пустая строка = 0)
ftruncate($f,0); // Стираем файл
fwrite($f,$count); // Записываем новое значение
fflush($f); // Сбрасываем файловый буфер
flock($f,LOCK_UN); // Отключаемся от блокировки
fclose($f); // Закрываем файл
echo $count; // Печатаем величину счетчика
/* А если мне НЕ нужно производить какие-либо манипуляции с имеющимися данными в файле , т.е. считывать значение и увеличивать его. Мне просто необходимо дописать новые данные и ВСЁ. Применение такого алгоритма насколлько правильно ?*/
$open = ('counter.dat','a+');
flock($open,LOCK_EX);
fwrite ($open, $new_data."\r\n");
flock($open,LOCK_UN);
fclose ($open);
/*
1) Можно ли такое применить при написании гостевой, только неверное при использовании разделяемой блокировки ? Или я совсем неправильно мыслю?
2) применяется ли flock() для директорий ?
*/