flock funksiyası
flock funksiyası fayl üçün bloklama tətbiq edir və ya aradan qaldırır. İlk parametr kimi, fopen vasitəsilə əldə edilmiş fayl göstəricisini, ikinci parametr kimi bloklama növünü (LOCK_SH, LOCK_EX və ya LOCK_UN), üçüncü isteğe bağlı parametr kimi isə bloklamayan əməliyyat üçün bayrağı qəbul edir.
Sintaksis
flock(resource $handle, int $operation, int &$would_block = null): bool
Nümunə
Faylı eksklüziv giriş (yazma) üçün bloklamaq:
<?php
$file = fopen("data.txt", "c+");
if (flock($file, LOCK_EX)) {
ftruncate($file, 0);
fwrite($file, "Yeni məlumat");
flock($file, LOCK_UN);
}
fclose($file);
?>
Nümunə
Oxumaq üçün paylanmış bloklama:
<?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;
?>
Nümunə
Bloklamayan bloklama cəhdi:
<?php
$file = fopen("data.txt", "c+");
if (flock($file, LOCK_EX | LOCK_NB, $would_block)) {
if ($would_block) {
echo "Fayl başqa proses tərəfindən bloklanıb";
} else {
fwrite($file, "Məlumat");
flock($file, LOCK_UN);
}
}
fclose($file);
?>
Həmçinin baxın
-
fopenfunksiyasına,
faylı açan -
fclosefunksiyasına,
faylı bağlayan -
is_writablefunksiyasına,
yazma imkanını yoxlayan