PHP - Fonction flock ()

La fonction flock () peut verrouiller ou libérer un fichier, et elle peut renvoyer true en cas de succès ou false en cas d'échec.

Syntaxe

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

La fonction flock () nous permet de réaliser un modèle de lecteur / écrivain simple qui peut être utilisé sur pratiquement toutes les plates-formes.

Les verrous possibles sont LOCK_SH: Verrou partagé (lecteur). Autoriser les autres processus à accéder au fichier, LOCK_EX: Verrou exclusif Empêchez les autres processus d'accéder au fichier, LOCK_UN: Libérez un verrou partagé ou exclusif et LOCK_NB: évite de bloquer d'autres processus lors du verrouillage

Ces verrous ne sont utilisés que dans le processus PHP actuel, et si l'autorisation le permet, d'autres processus peuvent modifier ou supprimer le fichier verrouillé par PHP. Cette fonction est obligatoire sous Windows. Nous pouvons utiliser la fonction fclose () pour libérer l'opération de verrouillage, qui peut être automatiquement appelée lorsque l'exécution du script est terminée.

Exemple

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