Die flock Funksie

Die funksie flock plaas of verwyder 'n lêersluiting. Dit neem as eerste parameter 'n wyser na die lêer, verkry deur fopen, as tweede parameter die tipe sluiting (LOCK_SH, LOCK_EX of LOCK_UN), en as derde opsionele parameter 'n vlag vir 'n nie-blokkerende operasie.

Sintaksis

phpflock(resource $handle, int $operation, int &$would_block = null): bool

Voorbeeld

Sluit 'n lêer vir eksklusiewe toegang (skryf):

php<?php
  $file = fopen("data.txt", "c+");
  if (flock($file, LOCK_EX)) {
    ftruncate($file, 0);
    fwrite($file, "New data");
    flock($file, LOCK_UN);
  }
  fclose($file);
?>

Voorbeeld

Gedeelde sluiting vir lees:

php<?php
  $file = fopen("data.txt", "r");
  if (flock($file, LOCK_SH)) {
    $content = fread($file, filesize("data.txt"));
    flock($file, LOCK_UN);
  }
  fclose($file);
  echo $content;
?>

Voorbeeld

Nie-blokkerende poging om 'n sluiting te verkry:

php<?php
  $file = fopen("data.txt", "c+");
  if (flock($file, LOCK_EX | LOCK_NB, $would_block)) {
    if ($would_block) {
      echo "File is locked by another process";
    } else {
      fwrite($file, "Data");
      flock($file, LOCK_UN);
    }
  }
  fclose($file);
?>

Sien ook

  • die funksie fopen,
    wat 'n lêer oopmaak
  • die funksie fclose,
    wat 'n lêer toemaak
  • die funksie is_writable,
    wat skryftoegang nagaan