PHP flock() 函数

定义和用法

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

若成功,则返回 true。若失败,则返回 false。

语法

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

说明

opis Operacja flock() file

blokada Musisz podać wskaźnik pliku, który został już otwarty.

  • Parametr może przyjąć jedną z następujących wartości: blokada ustaw na LOCK_SH (w wersjach PHP 4.0.1 i wcześniejszych ustawionych na 1).
  • Aby uzyskać blokadę wyłączną (program zapisujący), ustaw blokada ustaw na LOCK_EX (w wersjach PHP 4.0.1 i wcześniejszych ustawionych na 2).
  • Aby zwolnić blokadę (zarówno wspólną, jak i wyłączną), ustaw blokada ustaw na LOCK_UN (w wersjach PHP 4.0.1 i wcześniejszych ustawionych na 3).
  • Jeśli nie chcesz, aby flock() zablokował, podaj blokada dodaj LOCK_NB (w wersjach PHP 4.0.1 i wcześniejszych ustawionych na 4).

Wskazówki i komentarze

Wskazówka:Można to zrobić fclose() Aby zwolnić operację blokowania, kod jest również automatycznie wywoływany po zakończeniu wykonywania.

Komentarz:Ponieważ flock() wymaga wskaźnika pliku, może być konieczne użycie specjalnego pliku blokującego, aby chronić dostęp do pliku otwieranego w trybie zapisu (dodanie "w" lub "w+" do funkcji fopen()).

Przykład

<?php
$file = fopen("test.txt","w+");
// blokada wyłączna
if (flock($file,LOCK_EX))
  {
  fwrite($file,"Napisz coś");
  // zwolnienie blokady
  flock($file,LOCK_UN);
  }
else
  {
  echo "Błąd blokowania pliku!";
  }
fclose($file);
?>