PHP - Función flock ()

La función flock () puede bloquear o liberar un archivo, y puede devolver verdadero en caso de éxito o falso en caso de error.

Sintaxis

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

La función flock () nos permite realizar un modelo de lector / escritor simple que se puede utilizar en prácticamente todas las plataformas.

Los posibles bloqueos son LOCK_SH: Bloqueo compartido (lector). Permitir que otros procesos accedan al archivo, LOCK_EX: Bloqueo exclusivo. Evitar que otros procesos accedan al archivo, LOCK_UN: Liberar un bloqueo compartido o exclusivo, y LOCK_NB: Evita bloquear otros procesos mientras se bloquea.

Estos bloqueos se utilizan solo en el proceso PHP actual y, si el permiso lo permite, otros procesos pueden modificar o eliminar el archivo bloqueado por PHP. Esta función es obligatoria en Windows. Podemos usar la función fclose () para liberar la operación de bloqueo, que se puede llamar automáticamente cuando se completa la ejecución del script.

Ejemplo

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