flock()
Qu'est-ce que la fonction flock() ?
La fonction flock() est une fonction PHP intégrée qui permet de mettre en place un mécanisme simple de verrouillage de fichiers. Cette fonction est utilisée pour empêcher plusieurs processus d'accéder simultanément au même fichier. Notez que flock() utilise un verrouillage consultatif sur les systèmes de type Unix, tandis que Windows utilise un verrouillage obligatoire.
Voici la syntaxe de base de la fonction flock() :
La syntaxe PHP de flock()
flock($stream, $operation, $wouldblock = null): boolOù $stream est le pointeur de fichier retourné par fopen(), $operation est le type de verrou que vous souhaitez appliquer, et $wouldblock est un paramètre optionnel qui reçoit true si le verrouillage bloquerait. La fonction retourne true en cas de succès ou false en cas d'échec.
Comment utiliser la fonction flock() ?
L'utilisation de la fonction flock() est simple. Voici les étapes à suivre :
- Ouvrez le fichier que vous souhaitez verrouiller à l'aide de la fonction
fopen(). - Appelez la fonction
flock(), en passant le pointeur de fichier et le type de verrou que vous souhaitez appliquer. - Effectuez les opérations souhaitées sur le fichier.
- Une fois terminé, libérez le verrou en utilisant
flock($file, LOCK_UN).
Voici un extrait de code exemple qui montre comment utiliser la fonction flock() :
Comment utiliser la fonction flock() ?
<?php
$filename = 'myfile.txt';
$file = fopen($filename, 'r+');
if ($file !== false) {
if (flock($file, LOCK_EX)) {
// Perform operations on the file
flock($file, LOCK_UN);
} else {
echo "Unable to obtain lock on file!";
}
fclose($file);
}
?>Dans cet exemple, nous ouvrons le fichier myfile.txt à l'aide de la fonction fopen() et appliquons un verrou exclusif grâce à la fonction flock(). Nous effectuons ensuite quelques opérations sur le fichier et libérons le verrou en utilisant LOCK_UN. Les constantes de verrouillage courantes incluent LOCK_SH (verrou partagé), LOCK_EX (verrou exclusif) et LOCK_NB (verrou non bloquant, qui peut être combiné avec LOCK_SH ou LOCK_EX à l'aide d'un OU binaire).
Conclusion
La fonction flock() est un outil utile en PHP pour effectuer des opérations de verrouillage de fichiers. En suivant les étapes décrites dans ce guide, vous pouvez facilement utiliser la fonction flock() dans vos projets PHP pour empêcher plusieurs processus d'accéder simultanément au même fichier.
Pratique
What is the function of flock() in PHP?