Php de kullanımdaki bir dosyayı kilitleme, Php flock

Php flock fonksiyonu : Web sunucusundaki dosyalarımızla sadece bir kişi işlem yapıyor olsa idi, bir sorun olmazdı; ne var ki, bir Web sitesine aynı anda birden fazla kişi eriyebilir ve dosyalarla işlem yapan programları çalıştırıyor olabilir. Bu, PHP’nin dosya işlemlerine engel olabilir. Bu sebeple, işlem  için açacağımız bir dosyayı, önce kilitlemek yerinde bir önlem sayılır. Bunu, flock() fonsiyonu ile yaparız; bu fonksiyona kilitlemek istediğimiz dosyanın işaret değişkeninin adını ve kilit türünü belirten endeks sayısını parametre olarak yazarız. Örnek:

<?php

$dosya_adi = “/inetpub/wwwroot/bir_dosya.txt”;

$dosya = fopen ($dosya_adi , ‘w’) or die (“Dosya açılamadı!”);

flock ( $dosya , 2); // dosyayı kilitle

$metin = “Bu satır dosyaya yazılacak: Merhaba Dünya!\n”;

fwrite ( $dosya , $metin ) ;

fputs ( $dosya , “Bu satır ise sonradan eklenecek\n” ) ;

flock ( $dosya , 3); //dosyayı kilidini aç

fclose ($dosya);

?>

Bu fonksiyon ile kullanabileceğimiz endeks parametreleri şunlardır:

1               Paylaşım           Diğer proseslerin dosyayı paylaşmalarına imkan verir

2               Tam                 Diğer proseslerin dosyaile işlem yapmasına engel olur

3               Serbest             Dosyanın 1 veya 2 olan kilidini kaldırır

Bir dosya, herhangi bir PHP programı tarafından kilitlendiği anda, aynı dsyayı daha sonra kilitlemeye kalkan diğer programlar kendilerinden önce konulmuş kilide  saygı gösterirler.

Bana Ders Anlat © 2008-2022