【问题标题】:PHP check if file is in usePHP检查文件是否正在使用
【发布时间】:2011-06-14 08:53:38
【问题描述】:

我想制作一个平面文件数据库,它将使用 .php 文件来存储来自网站的数据。我唯一的问题是,如果当我从平面文件数据库中“选择”某些内容(这意味着文件已被读取),如果在那一刻正在进行“更新”(这意味着文件已被修改和写入),则文件将获取空白,我会丢失所有内容。

我想到了一些事情,检查文件是否正在使用,如果是,等待几毫秒并再次检查。

【问题讨论】:

  • 我只想创建自己的系统。

标签: php file


【解决方案1】:

【讨论】:

  • 这解决了您的问题吗?我也在尝试使用它,但似乎flock 不会在不同的apache请求中锁定文件。因此,例如,如果一个用户锁定了一个文件,而另一个用户在另一个 apache 请求中检查该锁定,则该文件将不会被锁定。似乎flock 仅适用于当前的PHP 实例。你没遇到过这个问题吗?
  • @AlexandreSchmidt 也许是因为flock 使用了咨询锁? php.net/manual/en/function.flock.php#78318
  • 看下面的教程,很有用:hackingwithphp.com/8/11/0/locking-files-with-flock
【解决方案2】:

请试试这个它对我的情况有效....

    if(readyToRead(__FILE__)){
        echo "File is ready to read.";
    } else{
        echo "File is used by somebody else.";
    }

   function readyToRead($file){
       return ((time() - filemtime($file)) > 5 ) ? true : false;
   }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-07
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-02
    • 2018-10-22
    • 1970-01-01
    相关资源
    最近更新 更多