好的,所以我是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
来确保它们一次运行一个代码。