Question

J'utilise le fichier () pour lire à travers un fichier comme un tableau avec des onglets. Je veux verrouiller le fichier mais je ne peux pas sembler obtenir troupeau () travaillant sur le dossier. Est-il possible de faire cela? Si c'est le cas, comment? Dans la négative, le fichier () verrouiller le fichier depuis le début et à atténuer les problèmes de partage potentiel?

Était-ce utile?

La solution

Selon la documentation (en particulier les commentaires), il a gagné « t lire un fichier qui a été verrouillé par flock.

Vous avez 2 solutions de rechange.

  1. Lire le fichier avec fgets (sans vérification d'erreurs):

    $f = fopen($file, 'r');
    flock($f, LOCK_SH);
    $data = array();
    while ($row = fgets($f)) {
        $data[] = $row;
    }
    flock($f, LOCK_UN);
    fclose($f);
    
  2. Lire le fichier avec file() et en utilisant un "lockfile" séparée:

    $f = fopen($file . '.lock', 'w');
    flock($f, LOCK_SH);
    $data = file($file);
    flock($f, LOCK_UN);
    fclose($f);
    unlink($file . '.lock');
    
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top