Hàm flock
Hàm flock thiết lập hoặc gỡ bỏ khóa trên tệp. Tham số đầu tiên của nó nhận một con trỏ tệp, thu được qua fopen, tham số thứ hai - loại khóa (LOCK_SH, LOCK_EX hoặc LOCK_UN), và tham số thứ ba tùy chọn - cờ cho thao tác không chặn.
Cú pháp
flock(resource $handle, int $operation, int &$would_block = null): bool
Ví dụ
Khóa tệp để truy cập độc quyền (ghi):
<?php
$file = fopen("data.txt", "c+");
if (flock($file, LOCK_EX)) {
ftruncate($file, 0);
fwrite($file, "Dữ liệu mới");
flock($file, LOCK_UN);
}
fclose($file);
?>
Ví dụ
Khóa chia sẻ để đọc:
<?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;
?>
Ví dụ
Thử chiếm khóa không chặn:
<?php
$file = fopen("data.txt", "c+");
if (flock($file, LOCK_EX | LOCK_NB, $would_block)) {
if ($would_block) {
echo "Tệp đang bị khóa bởi tiến trình khác";
} else {
fwrite($file, "Dữ liệu");
flock($file, LOCK_UN);
}
}
fclose($file);
?>
Xem thêm
-
hàm
fopen,
mở tệp -
hàm
fclose,
đóng tệp -
hàm
is_writable,
kiểm tra khả năng ghi