Funzione PHP flock()
Definizione e utilizzo
La funzione flock() locka o rilascia un file.
Restituisce true se successo, altrimenti false.
Sintassi
flock(Operazione di locking di flock(),lock,block)
Parametro | Descrizione |
---|---|
Operazione di locking di flock() | Obbligatorio. Specifica il file aperto da lockare o rilasciare. |
lock | Obbligatorio. Specifica il tipo di lock da utilizzare. |
block | Opzionale. Se impostato a 1 o true, blocca altri processi durante la lock. |
Spiegazione
Spiegazione Operazione di locking di flock() file
lock Deve essere un puntatore di file già aperto.
- Il parametro può essere uno dei seguenti valori: lock impostato a LOCK_SH (configurato a 1 nelle versioni precedenti di PHP 4.0.1).
- Per ottenere un locking esclusivo (programma di scrittura), impostare lock impostato a LOCK_EX (configurato a 2 nelle versioni precedenti di PHP 4.0.1).
- Per rilasciare il locking (sia condiviso che esclusivo), impostare lock impostato a LOCK_UN (configurato a 3 nelle versioni precedenti di PHP 4.0.1).
- Se non si desidera che flock() si blocchi durante il locking, dare lock Aggiungere LOCK_NB (configurato a 4 nelle versioni precedenti di PHP 4.0.1).
Suggerimenti e commenti
Suggerimento:Può essere fatto tramite fclose() Per rilasciare l'operazione di locking, viene chiamata automaticamente alla fine dell'esecuzione del codice.
Commento:Poiché flock() richiede un puntatore di file, potrebbe essere necessario utilizzare un file di locking speciale per proteggere l'accesso ai file aperti in modalità di scrittura (aggiungere "w" o "w+" alla funzione fopen()).
Esempio
<?php $file = fopen("test.txt","w+"); // locking in exclusive mode if (flock($file,LOCK_EX)) { fwrite($file,"Write something"); // release lock flock($file,LOCK_UN); } else { echo "Error locking file!"; } fclose($file); ?>