flock()
是 PHP 中的一个函数,用于对文件进行锁定
在 PHP 脚本中使用 flock()
函数时,通常与文件操作相关。例如,当你需要确保同时只有一个进程可以访问和修改某个文件时,可以使用 flock()
函数来实现这种锁定机制。
flock()
函数的基本语法如下:
bool flock(resource $handle, int $operation, int &$wouldblock = null): bool
参数说明:
$handle
: 必需,表示要锁定的文件句柄。$operation
: 必需,表示要执行的锁定操作。可选值包括:
LOCK_SH
: 请求共享锁定(读取)。LOCK_EX
: 请求独占锁定(写入)。LOCK_UN
: 释放锁定。LOCK_NB
: 非阻塞模式,如果无法立即获得锁定,则返回 false。$wouldblock
: 可选,表示是否会被阻塞。如果传递了该参数,当锁定操作会被阻塞时,该变量将被设置为 true,否则为 false。示例代码:
<?php
$fp = fopen("test.txt", "w+");
if (flock($fp, LOCK_EX)) { // 获取独占锁(写入)
fwrite($fp, "Write something to the file.");
fflush($fp); // 清空缓冲区
flock($fp, LOCK_UN); // 释放锁定
}
fclose($fp);
?>
在上面的示例中,我们首先打开一个名为 test.txt
的文件,并获取独占锁(写入)。然后向文件中写入内容,并清空缓冲区。最后,我们释放锁定并关闭文件。