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