语法格式如下:
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
推荐:《php视频教程》《 php教程》