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