PHP flock() 函數


PHP Filesystem 參考手冊 完整的 PHP Filesystem 參考手冊

定義和用法

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 lock
if (flock($file,LOCK_EX))
{
fwrite($file,"Write something");
// release lock
flock($file,LOCK_UN);
}
else
{
echo "Error locking file!";
}

fclose($file);
?>


PHP Filesystem 參考手冊 完整的 PHP Filesystem 參考手冊