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