flock()
是 PHP 中的一个函数,它用于对文件进行锁定和解锁。这主要用于在多个进程或者同时运行的脚本之间共享文件资源时,防止文件内容被同时写入导致数据损坏或不一致。
flock()
函数的作用是:
flock()
函数的语法如下:
bool flock ( resource $handle , int $operation [, int &$wouldblock ] )
参数说明:
$handle
:文件指针,由 fopen()
函数返回。$operation
:锁定操作类型。可以是以下值之一:
LOCK_SH
:请求共享锁定(读取)。LOCK_EX
:请求独占锁定(写入)。LOCK_UN
:释放锁定。LOCK_NB
:表示非阻塞模式,可以与 LOCK_SH
或 LOCK_EX
结合使用。$wouldblock
:可选参数,如果传递了这个参数,当锁定操作失败时,它将被设置为一个非零值。示例:
$fp = fopen("test.txt", "w");
if (flock($fp, LOCK_EX)) { // 获取独占锁(写入)
fwrite($fp, "Write something to the file.");
flock($fp, LOCK_UN); // 释放锁
}
fclose($fp);
在上面的示例中,我们首先打开一个文件,然后使用 flock()
函数尝试获取独占锁(写入)。如果成功获取到锁,我们向文件写入内容,然后释放锁。最后关闭文件。