PHP | Función SplFileObject flock()

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

Publicación traducida automáticamente

Artículo escrito por R_Raj y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *