Função flock() do PHP

Definição e uso

A função flock() bloqueia ou libera arquivos.

Se for bem-sucedido, retorna true. Se falhar, retorna false.

Sintaxe

flock(Operação de locking do,lock,block)
Parâmetros Descrição
Operação de locking do Obrigatório. Define o arquivo aberto a ser bloqueado ou liberado.
lock Obrigatório. Define qual tipo de bloqueio deve ser usado.
block Opcional. Se definido como 1 ou true, bloqueia outros processos ao realizar o bloqueio.

说明

descrição Operação de locking do file

lock Deve ser um ponteiro de arquivo já aberto.

  • O parâmetro pode ser um dos seguintes valores: lock como LOCK_SH (em versões anteriores ao PHP 4.0.1, configurado como 1).
  • Para obter um locking exclusivo (programas de escrita), configure lock como LOCK_EX (em versões anteriores ao PHP 4.0.1, configurado como 2).
  • Para liberar o locking (sejam compartilhado ou exclusivo), configure lock como LOCK_UN (em versões anteriores ao PHP 4.0.1, configurado como 3).
  • Se não desejar que o flock() seja bloqueado ao locking, configure lock Adicionar LOCK_NB (em versões anteriores ao PHP 4.0.1, configurado como 4).

Dicas e Comentários

Dica:Pode ser feita através de fclose() Para liberar a operação de locking, também é chamada automaticamente ao final da execução do código.

Comentário:Devido ao flock() precisar de um ponteiro de arquivo, pode ser necessário usar um arquivo de locking especial para proteger o acesso ao arquivo que será aberto em modo de escrita (adicionar "w" ou "w+" ao fopen()).

Exemplo

<?php
$file = fopen("test.txt","w+");
// locking exclusively
if (flock($file,LOCK_EX))
  {
  fwrite($file,"Write something");
  // release lock
  flock($file,LOCK_UN);
  }
else
  {
  echo "Error locking file!";
  }
fclose($file);
?>