PHP锁定文本文件进行编辑?

Jan*_*nne 6 php file-locking

我有一个表单将其输入写入文本文件.是否可以锁定文本文件进行编辑,并且可能会给出一条友好的消息"该文件由其他用户编辑,请稍后再试".

如果文件同时有多个编辑器,我想避免冲突.

以下是当前添加条目的方式.

$content = file_get_contents("./file.csv");
$fh = fopen("./file.csv", "w");
fwrite($fh, $date_yy . '-' . $date_mm . '-' . $date_dd . '|' . $address . '|' . $person . '|' . $time_hh . ':' . $time_mm);
fwrite($fh, "\n" . $content);
fclose($fh);

有什么想法吗?

Emm*_*l N 4

您可以使用flock()函数来锁定文件。更多请看这个

就像是:

   <?php

      $content = file_get_contents("./file.csv");
      $fp = fopen("./file.csv", "w"); // open it for WRITING ("w")
      if (flock($fp, LOCK_EX)) 
      {
      // do your file writes here
      fwrite($fh, $date_yy . '-' . $date_mm . '-' . $date_dd . '|' . $address . '|' .  $person . '|' . $time_hh . ':' . $time_mm);
      fwrite($fh, "\n" . $content);
      fclose($fh);
      flock($fh, LOCK_UN); // unlock the file
      } 
   ?> 
Run Code Online (Sandbox Code Playgroud)

  • 在 *fopen* 和 *flock* 之间,文件将被清零(由于“w”访问),希望这是OP想要的...此外,解锁应该在文件关闭之前... (2认同)