PHP - função flock ()

A função flock () pode bloquear ou liberar um arquivo e pode retornar verdadeiro em caso de sucesso ou falso em caso de falha.

Sintaxe

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

A função flock () nos permite executar um modelo simples de leitor / gravador que pode ser usado em praticamente todas as plataformas.

Os bloqueios possíveis são LOCK_SH: Bloqueio compartilhado (leitor). Permite que outros processos acessem o arquivo, LOCK_EX: Bloqueio exclusivo.Evite que outros processos acessem o arquivo, LOCK_UN: Libere um bloqueio compartilhado ou exclusivo e LOCK_NB: Evita bloquear outros processos durante o bloqueio.

Esses bloqueios são usados ​​apenas no processo PHP atual e, se a permissão permitir, outros processos podem modificar ou excluir o arquivo bloqueado por PHP. Esta função é obrigatória no Windows. Podemos usar a função fclose () para liberar a operação de bloqueio, que pode ser chamada automaticamente quando a execução do script for concluída.

Exemplo

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