我想创建一个使用 .php 文件来存储网站数据的平面文件数据库。我的唯一问题是,如果在从平面文件数据库中“选择”某些内容(这意味着正在读取文件)的同时进行“更新”(这意味着正在修改和写入文件),则文件会变为空白,我将失去所有内容。
我考虑了一些解决方案,可以检查文件是否正在使用,如果正在使用,则等待几毫秒并再次检查。
研究 flock()
函数http://php.net/manual/en/function.flock.php
flock
使用了咨询式锁?http://php.net/manual/en/function.flock.php#78318 - tonix 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;
}