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