0
在我的php腳本中,解析一個字符串之後,我需要將一些數據寫入一個文件(創建之後如果不存在)。在寫入文件之前,我需要獨佔鎖定以避免問題。 這是我的代碼:php:獨佔鎖定文件從未獲得
foreach ($elements[0] as $current) {
$file_handler = fopen($my_folder . "/" . $current . ".txt", "a");
$locked = flock($file_handler, "LOCK_EX");
while (!$locked) {
usleep(500000);
$locked = flock($file_handler, "LOCK_EX");
}
//got lock
fwrite($file_handler, $mystring . "\n");
//release lock
flock($file_handler, LOCK_UN);
fclose($file_handler);
}
return;
現在,有些事情似乎不起作用。 fopen創建文件,但我的代碼似乎進入循環內(while文件被創建,但沒有寫入裏面)。怎麼了?
我建議使用數據庫來避免此問題。 – dlyaza
我不能使用數據庫,因爲我需要存儲數據庫無法存儲的大量數據(數據庫可能會在我的情況下確定少量的數據) 編輯:當我打電話給腳本,我是唯一的誰要求鎖定文件 – giozh