掲示板などで使われるmkdirロック
#★★★★★★★★★★★★★★★★★★★★★#
#★★★ ファイルロック ★★★#
#★★★★★★★★★★★★★★★★★★★★★#
function mkdirLook(){
global $lock;
if(file_exists($lock)){
#ファイルが存在して時間が昔のものなら消しておく。
$list=(stat($lock));
$ftime=$list[ctime];
$mytime=time();
if($mytime-5>$ftime){mkdirunlock();}
}
$retry=5;
while(file_exists($lock)){
if($retry==0){
#ロックに失敗したらエラーを返す。
return false;
exit;
}
sleep(1);
$retry--;
}
#成功したら
touch($lock);#空のファイルを作成する
chmod($lock,0755);
return true;
}
#★★★★★★★★★★★★★★★★★★★★★#
#★★★ ロック解除 ★★★#
#★★★★★★★★★★★★★★★★★★★★★#
function mkdirunlock() {
global $lock;
if(file_exists($lock)){
unlink($lock);
}
}
コメントする