flock() 函數鎖定或釋放檔案。
如果成功,則函數傳回TRUE。如果失敗,則傳回FALSE。
flock(file,lock,block)
參數 | 描述 |
---|---|
file | 必需。規定要鎖定或釋放的已開啟的檔案。 |
lock | 必需。規定要使用哪種鎖定類型。 可能的值: LOCK_SH - 共用鎖定(讀取的程式)。允許其他進程存取該檔案。 LOCK_EX - 獨佔鎖定(寫入的程式)。防止其他進程存取該文件。 LOCK_UN - 釋放一個共享鎖定或獨佔鎖定 LOCK_NB - 鎖定的情況下避免阻塞其他進程。 |
block | 可選。若設定為1,則進行鎖定時阻塞其他進程。 |
註:這些鎖僅在目前的PHP 進程中使用。如果權限允許,其他的進程可修改或刪除一個PHP-locked 檔案。
註: flock() 在Windows 下具有強制性。
提示:可以透過fclose() 來釋放鎖定操作,腳本執行完成時會自動呼叫。
<?php$file = fopen("test.txt","w+");// exclusive lockif (flock($file,LOCK_EX)) { fwrite($file,"Write something"); // release lock flock( $file,LOCK_UN); }else { echo "Error locking file!"; }fclose($file);?>