Fonction flock() PHP

Définition et utilisation

La fonction flock() verrouille ou libère un fichier.

Retourne true si réussi. Retourne false si échoue.

Syntaxe

flock(Opération de verrouillage flock(),verrouillage,block)
Paramètres Description
Opération de verrouillage flock() Obligatoire. Définir le fichier ouvert à verrouiller ou libérer.
verrouillage Obligatoire. Définir le type de verrouillage à utiliser.
block Optionnel. Si configuré à 1 ou true, bloquer d'autres processus lors du verrouillage.

说明

Description Opération de verrouillage flock() file

verrouillage Doit être un pointeur de fichier déjà ouvert.

  • Le paramètre peut être l'une des valeurs suivantes : verrouillage à LOCK_SH (configuré à 1 dans les versions précédentes de PHP 4.0.1).
  • Pour obtenir un verrouillage exclusif (programme d'écriture), définissez verrouillage à LOCK_EX (configuré à 2 dans les versions précédentes de PHP 4.0.1).
  • Pour libérer le verrouillage (quelle que soit la verrouillage partagé ou exclusif), définissez verrouillage à LOCK_UN (configuré à 3 dans les versions précédentes de PHP 4.0.1).
  • Si vous ne souhaitez pas que flock() se bloquent pendant le verrouillage, donnez verrouillage Ajouter LOCK_NB (configuré à 4 dans les versions précédentes de PHP 4.0.1).

Avis et commentaires

Avis :Il est possible de fclose() Pour libérer l'opération de verrouillage, l'appel de code s'exécute également automatiquement à la fin de l'exécution du code.

Remarque :En raison de la nécessité que flock() nécessite un pointeur de fichier, il peut être nécessaire d'utiliser un fichier de verrouillage spécial pour protéger l'accès aux fichiers qui doivent être ouverts en mode écrit (ajouter "w" ou "w+" dans la fonction fopen()).

Exemple

<?php
$file = fopen("test.txt","w+");
// Lock exclusif
if (flock($file,LOCK_EX))
  {
  fwrite($file,"Write something");
  // release lock
  flock($file,LOCK_UN);
  }
else
  {
  echo "Error locking file!";
  }
fclose($file);
?>