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