PHP flock() fonksiyonu

Tanım ve Kullanım

flock() fonksiyonu dosyayı kilitlemek veya serbest bırakmak için kullanılır.

Başarıyla sonuçlanırsa true döner. Başarısız olursa false döner.

Gramer

flock(dosya,kilitleme,block)
Parametre Açıklama
dosya Gerekli. Kilitlenecek veya serbest bırakılacak olan açılmış dosyayı belirler.
kilitleme Gerekli. Kullanılacak kilitleme türünü belirler.
block İsteğe bağlı. 1 veya true olarak ayarlanırsa, kilitleme sırasında diğer süreçleri engellemek için kullanılır.

Açıklama

flock() operasyonunun dosya Zorunlu olarak bir açılmış dosya işaretçisi olmalıdır.

kilitleme Parametre aşağıdaki değerlerden biri olabilir:

  • Paylaşım kilitlemeyi almak için kilitleme LOCK_SH (PHP 4.0.1'den önceki sürümlerde 1 olarak ayarlanır).
  • Teknik kilitleme (yazma programı) almak için kilitleme LOCK_EX (PHP 4.0.1'den önceki sürümlerde 2 olarak ayarlanır).
  • Kilitlemeyi serbest bırakmak için kilitleme LOCK_UN (PHP 4.0.1'den önceki sürümlerde 3 olarak ayarlanır).
  • flock() kilitleme sırasında bloke olmayı istemiyorsanız kilitleme LOCK_NB (PHP 4.0.1'den önceki sürümlerde 4 olarak ayarlanır).

İpucu ve Yorumlar

İpucu:Aşağıdaki yollarla fclose() Kilitleme işlemini serbest bırakmak için, kodun çalıştırılması bittiğinde otomatik olarak çağrılır.

Yorum:flock() fonksiyonu bir dosya işaretçisi gerektirir, bu yüzden yazı modunda açmayı planladığınız dosyanın erişimini korumak için özel bir kilitleme dosyasını kullanmak zorunda kalabilirsiniz (fopen() fonksiyonuna "w" veya "w+" eklenir).

Örnek

<?php
$file = fopen("test.txt","w+");
// exclusive locking
if (flock($file,LOCK_EX))
  {
  fwrite($file,"Write something");
  // release lock
  flock($file,LOCK_UN);
  }
else
  {
  echo "Error locking file!";
  }
fclose($file);
?>