PHP - Funzione flock ()

La funzione flock () può bloccare o rilasciare un file e può restituire true in caso di successo o false in caso di fallimento.

Sintassi

bool flock ( resource $handle , int $operation [, int &$wouldblock ] )

La funzione flock () ci consente di eseguire un semplice modello di lettore / scrittore che può essere utilizzato praticamente su ogni piattaforma.

I possibili blocchi sono LOCK_SH: Blocco condiviso (lettore). Consenti ad altri processi di accedere al file, LOCK_EX: blocco esclusivo Impedisci ad altri processi di accedere al file, LOCK_UN: rilascia un blocco condiviso o esclusivo e LOCK_NB: evita il blocco di altri processi durante il blocco.

Questi blocchi vengono utilizzati solo nel processo PHP corrente e, se l'autorizzazione lo consente, altri processi possono modificare o eliminare il file bloccato da PHP. Questa funzione è obbligatoria in Windows. Possiamo usare la funzione fclose () per rilasciare l'operazione di blocco, che può essere chiamata automaticamente quando l'esecuzione dello script è completata.

Esempio

<?php
   $file = fopen("/PhpProject/sample.txt", "w+");

   // exclusive lock
   if(flock($file, LOCK_EX)) {
      fwrite($file, "flock function");
      
   // release lock
      flock($file, LOCK_UN);
      echo $file;
   } else {
      echo "Error locking file!";
   }
   fclose($file);
?>