掲示板などで使われる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);
}
}
コメントする