ფუნქცია flock
ფუნქცია flock ადგენს ან აშორებს ფაილის ბლოკირებას. პირველ პარამეტრად იგი იღებს ფაილის პოინტერს, რომელიც მიღებულია fopen-ის მეშვეობით, მეორე პარამეტრად - ბლოკირების ტიპს (LOCK_SH, LOCK_EX ან LOCK_UN), ხოლო მესამე არასავალდებულო პარამეტრად - ფლაგს არაბლოკირებელი ოპერაციისთვის.
სინტაქსი
flock(resource $handle, int $operation, int &$would_block = null): bool
მაგალითი
ფაილის ბლოკირება ექსკლუზიური წვდომისთვის (ჩასაწერად):
<?php
$file = fopen("data.txt", "c+");
if (flock($file, LOCK_EX)) {
ftruncate($file, 0);
fwrite($file, "ახალი მონაცემები");
flock($file, LOCK_UN);
}
fclose($file);
?>
მაგალითი
გაზიარებული ბლოკირება წასაკითხად:
<?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;
?>
მაგალითი
ბლოკირების აღების არაბლოკირებელი მცდელობა:
<?php
$file = fopen("data.txt", "c+");
if (flock($file, LOCK_EX | LOCK_NB, $would_block)) {
if ($would_block) {
echo "ფაილი სხვა პროცესის მიერაა დაბლოკილი";
} else {
fwrite($file, "მონაცემები");
flock($file, LOCK_UN);
}
}
fclose($file);
?>
Იხილეთ აგრეთვე
-
ფუნქციას
fopen,
რომელიც ხსნის ფაილს -
ფუნქციას
fclose,
რომელიც ხურავს ფაილს -
ფუნქციას
is_writable,
რომელიც ამოწმებს ჩაწერის შესაძლებლობას