|
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:
<?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 eklenecekn" ) ; 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.
|
 |