flock(resource $handle, int $operation[, int &$wouldblock])
a.$handle:文件系统指针,即使用 fopen() 创建的文件资源;
b.$operation:文件锁类型,可以是以下值之一:
-
LOCK_SH 取得共享锁定(读取的程序);
-
LOCK_EX 取得独占锁定(写入的程序);
-
LOCK_UN 释放锁定(无论共享或独占);
-
如果不希望 flock() 在锁定时堵塞,则可以在 $operation 中添加 LOCK_NB 参数(Windows 上还不支持)。
c.$wouldblock:可选参数,如果希望文件锁定时堵塞其它进程,则可以将该参数设置为 1 或 true。(Windows 上不支持)。
PS: 使用 flock() 函数不仅可以为文件加锁,好可以解锁文件。
示例:
<?php
$file = fopen('./test.txt','w+');
if(flock($file, LOCK_EX|LOCK_NB))
{
fwrite($file, '免费资源网'.date('Y-m-d H:i:s', time()));
flock($file, LOCK_UN);
}else{
echo "string";
}
fclose($file);
?>
运行结果:
在test.txt文件中写入
免费资源网2021-03-23 09:09:31

