语法格式如下: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, 'PHP中文网'.date('Y-m-d H:i:s', time()));
flock($file, LOCK_UN);
}else{
echo "string";
}
fclose($file);
?>
运行结果:
在test.txt文件中写入PHP中文网2021-03-23 09:09:31