【问题标题】:Should I use flock when reading a file in PHP?在 PHP 中读取文件时应该使用flock 吗?
【发布时间】:2014-11-16 15:24:12
【问题描述】:

好的,所以我是 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() 放在第二个示例中吗?

提前谢谢你。

【问题讨论】:

    标签: php fopen flock fclose feof


    【解决方案1】:

    只有在有多个进程同时访问文件时才需要使用flock

    如果写入文件的代码在任何时候都只会运行一个副本,那么您可能不需要使用flock。但是,如果多个进程可能会尝试同时运行代码(并因此访问文件),那么您应该使用flock 确保它们一次执行一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-28
      • 2013-05-23
      • 2011-03-06
      • 2017-04-20
      • 2017-10-19
      • 2018-05-30
      • 2014-10-20
      相关资源
      最近更新 更多