La función SplFileObject flock() es una función incorporada de la biblioteca PHP estándar (SPL) en PHP que se utiliza para aplicar un bloqueo portátil en el archivo.
Sintaxis:
bool SplFileObject::flock( $opr, $isBlock )
Parámetros: Esta función acepta dos parámetros como se mencionó anteriormente y se describe a continuación:
$opr: Se utiliza para especificar la operación a aplicar de la siguiente lista:
- LOCK_SH: Adquirir un candado compartido (lector).
- LOCK_EX: Adquirir un candado exclusivo (escritor).
- LOCK_UN: liberar un bloqueo.
- LOCK_NB: no bloquear durante el bloqueo.
$isBlock: este parámetro se establece en True si el bloqueo es un bloque.
Valores devueltos: esta función devuelve True en caso de éxito o False en caso de error.
Nota: Asegúrese de que el archivo utilizado en el programa a continuación se llame gfg.txt y tenga permisos de lectura y escritura.
Los programas a continuación ilustran la función SplFileObject::flock() en PHP:
Programa 1:
<?php // Create Spl Object $file = new SplFileObject("gfg.txt", "w"); // Add an Exclusive lock to gfg.txt if ($file->flock(LOCK_SH)) { $file->ftruncate(0); $file->fwrite("Write GFG inside the gfg.txt"); // Release the lock $file->flock(LOCK_UN); echo "Success Lock and Unlock Operation"; } else { echo "No Lock Available"; } ?>
Producción:
Success Lock and Unlock Operation.
Programa 2:
<?php // Create SplFile Object $file = new SplFileObject("gfg.txt", "w"); // Add an Exclusive lock to gfg.txt if ($file->flock(LOCK_EX)) { $file->ftruncate(0); $file->fwrite("Write GFG inside the gfg.txt"); // Release the lock $file->flock(LOCK_UN); echo "Success Exclusive Lock and Unlock Operation"; } else { echo "No Lock Available"; } ?>
Producción:
Success Exclusive Lock and Unlock Operation
Referencia: http://php.net/manual/en/splfileobject.flock.php