好的,所以我是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()放在第二个例子中吗?
提前谢谢。
答案 0 :(得分:2)
如果有多个进程同时访问该文件,则只需要使用flock
。
如果写入该文件的代码只能在任何时间运行一个副本,那么您可能不需要使用flock
。但是,如果多个进程可能同时尝试运行代码(并因此访问该文件),那么您应该使用flock
来确保它们一次执行一个。