PHP flock() funktionen

Definition og brug

flock() funktionen låser eller frigiver filer.

Returnerer true, hvis succesfuldt. Returnerer false, hvis fejlagtigt.

Syntaks

flock(operationen,låse,block)
Parameter Beskrivelse
operationen Obligatorisk. Definerer hvilken åben fil der skal låses eller frigives.
låse Obligatorisk. Definerer hvilken låstyp der skal bruges.
block Valgfri. Hvis indstillet til 1 eller true, blokerer det andre processer ved låsning.

beskrivelse

flock() operationen fil

låse Må være en allerede åben filpege.

  • Parameteren kan være en af følgende værdier: låse sættes til LOCK_SH (sat til 1 i versioner af PHP 4.0.1 og tidligere).
  • For at få en eksklusiv låse (skriveprogrammer), skal låse sættes til LOCK_EX (sat til 2 i versioner af PHP 4.0.1 og tidligere).
  • For at frigive låsen (uanset delshaft eller eksklusiv), skal låse sættes til LOCK_UN (sat til 3 i versioner af PHP 4.0.1 og tidligere).
  • Hvis du ikke ønsker, at flock() blokerer under låsning, skal du låse med LOCK_NB (sat til 4 i versioner af PHP 4.0.1 og tidligere).

Påmindelser og kommentarer

Ved at tilføjeDet kan gøres ved fclose() For at frigive låseoperationen, vil koden også automatisk blive kaldt, når koden udføres.

Kommentar:Da flock() kræver en filpege, kan det være nødvendigt at bruge en specialdesignet låsefil til at beskytte adgangen til filer, der skal åbnes i skrive-mode (tilføj "w" eller "w+" til fopen() funktionen).

Eksempel

<?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);
?>