flock()
是 PHP 中的一個函數,它用于對文件進行鎖定和解鎖。這主要用于在多個進程或者同時運行的腳本之間共享文件資源時,防止文件內容被同時寫入導致數據損壞或不一致。
flock()
函數的作用是:
flock()
函數的語法如下:
bool flock ( resource $handle , int $operation [, int &$wouldblock ] )
參數說明:
$handle
:文件指針,由 fopen()
函數返回。$operation
:鎖定操作類型。可以是以下值之一:
LOCK_SH
:請求共享鎖定(讀取)。LOCK_EX
:請求獨占鎖定(寫入)。LOCK_UN
:釋放鎖定。LOCK_NB
:表示非阻塞模式,可以與 LOCK_SH
或 LOCK_EX
結合使用。$wouldblock
:可選參數,如果傳遞了這個參數,當鎖定操作失敗時,它將被設置為一個非零值。示例:
$fp = fopen("test.txt", "w");
if (flock($fp, LOCK_EX)) { // 獲取獨占鎖(寫入)
fwrite($fp, "Write something to the file.");
flock($fp, LOCK_UN); // 釋放鎖
}
fclose($fp);
在上面的示例中,我們首先打開一個文件,然后使用 flock()
函數嘗試獲取獨占鎖(寫入)。如果成功獲取到鎖,我們向文件寫入內容,然后釋放鎖。最后關閉文件。