Función PHP flock()

Definición y uso

La función flock() bloquea o libera archivos.

Si tiene éxito, devuelve true. Si falla, devuelve false.

Sintaxis

flock(La operación de flock(),bloqueo,block)
Parámetros Descripción
La operación de flock() Obligatorio. Define el archivo abierto que debe bloquearse o desbloquearse.
bloqueo Obligatorio. Define qué tipo de bloqueo debe utilizarse.
block Opcional. Si se establece en 1 o true, bloquea otros procesos al realizar el bloqueo.

说明

explicación La operación de flock() file

bloqueo Debe ser un puntero de archivo ya abierto.

  • El parámetro puede ser uno de los siguientes valores: bloqueo establecido en LOCK_SH (establecido en 1 en versiones anteriores a PHP 4.0.1).
  • Para obtener un bloqueo exclusivo (programas de escritura), configure bloqueo establecido en LOCK_EX (establecido en 2 en versiones anteriores a PHP 4.0.1).
  • Para liberar el bloqueo (compartido o exclusivo), configure bloqueo establecido en LOCK_UN (establecido en 3 en versiones anteriores a PHP 4.0.1).
  • Si no desea que flock() se bloquee durante el bloqueo, déjelo en bloqueo Añadiendo LOCK_NB (establecido en 4 en versiones anteriores a PHP 4.0.1).

Consejos y comentarios

Consejo:Puede hacerlo a través de fclose() Para liberar la operación de bloqueo, también se llama automáticamente al finalizar la ejecución del código.

Comentarios:Dado que flock() necesita un puntero de archivo, es posible que necesite usar un archivo de bloqueo especial para proteger el acceso a los archivos que se van a abrir en modo de escritura (agregar "w" o "w+" en la función fopen()).

Ejemplo

<?php
$file = fopen("test.txt","w+");
// bloqueo exclusivo
if (flock($file,LOCK_EX))
  {
  fwrite($file,"Escribir algo");
  // liberar bloqueo
  flock($file,LOCK_UN);
  }
else
  {
  echo "¡Error al bloquear el archivo!";
  }
fclose($file);
?>