Итак, я новичок в PHP, и пример из книги показывает, что когда я пишу в файл в php, я должен использовать flock ($ fp, LOCK_EX) после открытия файла, а затем flock ($ fp, LOCK_UN) перед закрытием файла , Как это:
$fp = fopen("$DOCUMENT_ROOT/order.txt", 'ab');
flock($fp, LOCK_EX);
fwrite($fp, $outputstring, strlent($outputstring));
flock ($fp, LOCK_UN);
fclose($fp);
Но в другом примере о том, как читать файл, я не уверен, что автор забыл поставить flock () или нет необходимости ставить flock () при чтении файла. Вот пример:
$fp = fopen("$DOCUMENT_ROOT/order.txt", 'rb');
while (!feof($fp))
{
$order = fgets($fp, 999)
echo $order."<br/>";
}
fclose($fp);
Так я должен поставить flock () во втором примере или нет?
Заранее спасибо.
Нужно только использовать flock
если будет несколько процессов, обращающихся к файлу одновременно.
Если в коде, который пишет в файл, всегда будет работать только одна копия, вам, вероятно, не нужно использовать flock
, Однако если возможно, что несколько процессов могут попытаться запустить код (и, следовательно, получить доступ к файлу) одновременно, то вам следует использовать flock
чтобы убедиться, что они делают это по одному.
Других решений пока нет …