Maison >développement back-end >tutoriel php >Analyse de la fonction flock() en PHP (avec exemples de code)

Analyse de la fonction flock() en PHP (avec exemples de code)

autoload
autoloadoriginal
2021-04-27 10:44:072819parcourir

Analyse de la fonction flock() en PHP (avec exemples de code)

Lors de l'utilisation de PHP, nous avons souvent besoin de lire des fichiers, mais afin d'empêcher d'autres processus de lire et de modifier des fichiers et d'éviter les conflits, nous devons lire les fichiers avant de verrouiller le fichier. lors de la récupération, puis modifiez le fichier jusqu'à ce que l'opération soit terminée. Dans ce processus, la fonction flock() est utilisée. Cet article vous amènera à comprendre ce qui suit. Pour la première fois, regardons la syntaxe de la fonction block() :

flock( resource $handle, int $operation, int $wouldblock = ?)
  • $handle : pointeur du système de fichiers, généralement créé par fopen() resource (ressource ).

  • $opération : LOCK_SHObtenir le verrou partagé (programme de lecture). LOCK_EX Obtient un verrou exclusif (programme d'écriture). LOCK_UN Libère le verrou (qu'il soit partagé ou exclusif flock() si vous ne voulez pas que LOCK_NB bloque pendant le verrouillage (pas encore pris en charge sous Windows). 🎜> >

  • $wouldblock : Si le verrou bloque (en cas de code d'erreur EWOULDBLOCK), le troisième paramètre facultatif sera défini sur

    (non pris en charge sous Windows) true.

  • Valeur de retour :

    en cas de succès, ou true en cas d'échec false

Exemple de code :

. 1. Utilisez LOCK_EX

<?php
$fp = fopen("exit.txt", "r+");
if (flock($fp, LOCK_EX)) {  // 进行排它型锁定
    ftruncate($fp, 0);      // truncate file
    fwrite($fp, "Write something here");
    fflush($fp);            // flush output before releasing the lock
    flock($fp, LOCK_UN);    // 释放锁定
} else {
    echo "Couldn&#39;t get the lock!";
}
fclose($fp);
?>
rrree

2. Utilisez LOCK_NB

exit.text内容:Write something here

Recommandé : Résumé des questions d'entretien PHP 2021 (collection)》《Tutoriel vidéo php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn