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); ?>