PHP flock() 函数

定义和用法

flock() 函数锁定或释放文件。

如果成功,则返回 true。如果失败,则返回 false。

语法

flock(De actie van flock(),lock,block)
参数 描述
De actie van flock() 必需。规定要锁定或释放的已打开的文件。
lock 必需。规定要使用哪种锁定类型。
block 可选。若设置为 1 或 true,则在锁定时阻止其他进程。

说明

omschrijving De actie van flock() file

lock Moet een al geopend bestandspunt zijn.

  • De parameter kan een van de volgende waarden zijn: lock in op LOCK_SH (in versies van PHP 4.0.1 en eerder ingesteld op 1).
  • Om een exclusieve lock te verkrijgen (voor schrijfprocessen), stel dan lock in op LOCK_EX (in versies van PHP 4.0.1 en eerder ingesteld op 2).
  • Om de lock te vrijgeven (ofwel gedeeld of exclusief), stel dan lock instellen op LOCK_UN (in versies van PHP 4.0.1 en eerder ingesteld op 3).
  • Als je wilt dat flock() niet blokkeert tijdens het locken, geef dan lock voeg LOCK_NB (in versies van PHP 4.0.1 en eerder ingesteld op 4) toe.

Tips en opmerkingen

Tip:Kan worden gebruikt fclose() Om de lock-operatie te vrijgeven, wordt de code ook automatisch aangeroepen wanneer de uitvoering van de code is voltooid.

Opmerking:Omdat flock() een bestandspunt nodig heeft, moet mogelijk een speciale lock-bestand gebruikt worden om de toegang tot de bestanden te beschermen die in schrijfmodus moeten worden geopend (voeg "w" of "w+" toe aan de fopen() functie).

Voorbeeld

<?php
$file = fopen("test.txt","w+");
// exclusive locking
if (flock($file,LOCK_EX))
  {
  fwrite($file,"Write something");
  // release lock
  flock($file,LOCK_UN);
  }
else
  {
  echo "Error locking file!";
  }
fclose($file);
?>