У меня есть функция, которая блокирует все файлы в определенной папке:
function lockFolder_files($folder='',$task=''){
global $file_array;//I need to use this var outside the function too
$file_array=glob($folder . '*_che.php');//this lists all files ending with "_che.php" in the array from folder1.
//now do a foreach on the array and open the file, and lock it:
foreach($file_array as $path){
$lock=fopen($path,"a+")//open with append mode
if($task=="lock"){
flock($lock,LOCK_EX);
}
elseif($task=="unlock"){
flock($lock,LOCK_UN);
}
}//end of foreach
if(count($file_array)==0){echo"no files were found in the folder"; return false;}
}//end of function
Так я называю эту функцию:
lockFolder_files("blah1/blah/myfolder","lock");
//do what i need to do with the array of files locked ($file_array)
lockFolder_files("blah1/blah/myfolder","unlock");//unlock all the files
Теперь кажется, что все файлы находятся в папке, они назначены массиву, но по какой-то причине он не блокирует файлы. После тестирования (с помощью sleep () и попытки записи в файл с помощью других сценариев) flock()
, похоже, не оказывает никакого влияния на файлы, чем когда-либо ....
Есть идеи, почему это происходит?
Спасибо