PHP 菜鳥教程

PHP 高級(jí)教程

PHP & MySQL

PHP 參考手冊(cè)

PHP flock() 函數(shù)用法及示例

    PHP Filesystem 參考手冊(cè)

flock()函數(shù)可以鎖定或釋放文件,成功時(shí)返回true,失敗時(shí)返回false。

語(yǔ)法

bool flock ( resource $handle , int $operation [, int &$wouldblock ] )

flock()函數(shù)允許我們執(zhí)行簡(jiǎn)單的讀取器/寫入器模型,該模型幾乎可以在所有平臺(tái)上使用。

注釋和提示

注釋:這些鎖僅在當(dāng)前的 PHP 進(jìn)程中使用。如果權(quán)限允許,其他的進(jìn)程可修改或刪除一個(gè) PHP-locked 文件。
注釋:flock() 在 Windows 下具有強(qiáng)制性。
提示:可以通過 fclose() 來釋放鎖定操作,腳本執(zhí)行完成時(shí)會(huì)自動(dòng)調(diào)用。

參數(shù)

參數(shù)描述
handle
必需。指定要鎖定或釋放的已打開的文件。
operation
必需。指定要使用哪種鎖定類型。

可能的值:

  • LOCK_SH - 共享鎖定(讀取的程序)。允許其他進(jìn)程訪問該文件。

  • LOCK_EX - 獨(dú)占鎖(寫入的程序)。防止其他進(jìn)程訪問該文件。

  • LOCK_UN - 釋放一個(gè)共享鎖定或獨(dú)占鎖定

  • LOCK_NB - 鎖定的情況下避免阻塞其他進(jìn)程。

    這些鎖僅在當(dāng)前的PHP進(jìn)程中使用,并且如果權(quán)限允許,其他進(jìn)程可以修改或刪除PHP鎖定的文件。在Windows中,此函數(shù)是必需的。我們可以使用fclose()函數(shù)來釋放鎖定操作,當(dāng)腳本執(zhí)行完成時(shí)可以自動(dòng)調(diào)用該鎖定操作。

wouldblock
可選。若設(shè)置為 1,則當(dāng)進(jìn)行鎖定時(shí)阻塞其他進(jìn)程。

在線示例

fclock的獨(dú)占鎖LOCK_EX的使用示例:

<?php
   $file = fopen("/PhpProject/sample.txt", "w+");

   //獨(dú)占鎖
   if(flock($file, LOCK_EX)) {
      fwrite($file, "flock function");
      
       // 釋放鎖
      flock($file, LOCK_UN);
      echo $file;
   } else {
      echo "鎖定文件時(shí)出錯(cuò)!";
   }
   fclose($file);
?>

PHP Filesystem 參考手冊(cè)

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清