/**
* Class FileLock
*/
class FileLock {
/** Проверяем блокировку скрипта
* @param $filename
* @return bool
*/
static function check($filename){
if(!$filename)
return false;
$filename .= '.lock';
if(file_exists($filename) && ((time() - filemtime ($filename)) < 3600)){
if(strstr (file_get_contents($filename),'LOCKED')){
return true;
}else{
return false;
}
}else{
return false;
}
}
/** Устанавливаем блокировку
* @param $filename
* @return bool|int
*/
static function setPoint($filename){
if(!$filename)
return false;
$filename .= '.lock';
return file_put_contents($filename, 'LOCKED');
}
/** Удаляем блокировку
* @param $filename
* @return bool|int
*/
static function del($filename){
if(!$filename)
return false;
$filename .= '.lock';
return file_put_contents($filename, '');
}
}
if(FileLock::check(__FILE__)){
exit("скрипт __FILE__ занят другим процессом"); }
FileLock::setPoint(__FILE__);
FileLock::del(__FILE__);