mécanisme de verrouillage des fichiers php

Le mécanisme de verrouillage des fichiers n'a généralement aucun effet lorsqu'un seul fichier est ouvert. Cette partie de l'apprentissage est un peu abstraite.

Vous ne réfléchissez pas à la manière d'y parvenir ?

Pourquoi ne voyez-vous pas l’effet ?
Réponse : Parce que l'ordinateur fonctionne si vite, essentiellement au niveau de la milliseconde. Cette expérience n’a donc aucun effet.

Dans ce chapitre, comprenez simplement les concepts de base du verrouillage de fichiers et familiarisez-vous avec la fonction de verrouillage de fichiers et le mécanisme de verrouillage.

Utilisation du verrouillage de fichier :

Si une personne écrit un fichier, une autre personne ouvre également le fichier et écrit le fichier.
Dans ce cas, s'il y a une certaine probabilité de collision, je ne sais pas quelle opération prévaudra.
Par conséquent, nous introduisons actuellement le mécanisme de verrouillage.
Si l'utilisateur A écrit ou lit ce fichier, ajoutez le fichier au partage. Je peux le lire, et les autres aussi.
Cependant, si tel est le cas. J'utilise le verrouillage exclusif. Ce fichier m'appartient. N'y touchez pas à moins que je libère le verrou du fichier.

Remarque : qu'un verrou de fichier soit ajouté ou non, veillez à le libérer.

Jetons un coup d'œil à cette fonction :

bool flock ( resource $handle , int $operation)

Fonction : verrouillage léger des fichiers consultatifs

Jetons un coup d'œil au type de verrou :

锁类型说明
LOCK_SH取得共享锁定(读取的程序)
LOCK_EX取得独占锁定(写入的程序
LOCK_UN释放锁定(无论共享或独占)

Nous ajouterons un verrou exclusif à demo.txt et effectuerons l'opération d'écriture.

<?php

$fp = fopen("demo.txt", "r+");

// 进行排它型锁定
if (flock($fp, LOCK_EX)) { 

   fwrite($fp, "文件这个时候被我独占了哟\n");

  // 释放锁定
   flock($fp, LOCK_UN);    
} else {
   echo "锁失败,可能有人在操作,这个时候不能将文件上锁";
}

fclose($fp);

?>

Explication :

1. Dans l'exemple ci-dessus, afin d'écrire le fichier, j'ai ajouté un verrou exclusif au fichier.

2. Si mon opération est terminée, une fois l'écriture terminée, le verrou exclusif est libéré.

3. Si vous lisez un fichier, vous pouvez ajouter un verrou partagé selon la même idée de traitement.


Formation continue
||
<?php $fp = fopen("demo.txt", "r+"); // 进行排它型锁定 if (flock($fp, LOCK_EX)) { fwrite($fp, "文件这个时候被我独占了哟\n"); // 释放锁定 flock($fp, LOCK_UN); } else { echo "锁失败,可能有人在操作,这个时候不能将文件上锁"; } fclose($fp); ?>
soumettreRéinitialiser le code
  • Recommandations de cours
  • Téléchargement du didacticiel