【发布时间】:2011-06-14 08:53:38
【问题描述】:
我想制作一个平面文件数据库,它将使用 .php 文件来存储来自网站的数据。我唯一的问题是,如果当我从平面文件数据库中“选择”某些内容(这意味着文件已被读取),如果在那一刻正在进行“更新”(这意味着文件已被修改和写入),则文件将获取空白,我会丢失所有内容。
我想到了一些事情,检查文件是否正在使用,如果是,等待几毫秒并再次检查。
【问题讨论】:
-
我只想创建自己的系统。
我想制作一个平面文件数据库,它将使用 .php 文件来存储来自网站的数据。我唯一的问题是,如果当我从平面文件数据库中“选择”某些内容(这意味着文件已被读取),如果在那一刻正在进行“更新”(这意味着文件已被修改和写入),则文件将获取空白,我会丢失所有内容。
我想到了一些事情,检查文件是否正在使用,如果是,等待几毫秒并再次检查。
【问题讨论】:
【讨论】:
flock 使用了咨询锁? php.net/manual/en/function.flock.php#78318
请试试这个它对我的情况有效....
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;
}
【讨论】: