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