PHP flock()函数
flock() 函数可以锁定或释放文件,并且在成功时返回 true,失败时返回 false。
语法
bool flock ( resource handle , intoperation [, int &$wouldblock ] )
flock()函数允许我们在几乎所有平台上执行简单的读写模式。
可能的锁有LOCK_SH:共享锁(读锁),允许其他进程访问文件;LOCK_EX: 排它锁,阻止其他进程访问文件;LOCK_UN: 释放共享或排它锁;LOCK_NB: 在加锁时避免阻塞其他进程。
这些锁仅在当前PHP进程中使用,如果权限允许,其他进程可以修改或删除PHP锁定的文件。这个函数在Windows下是强制要求的。我们可以使用fclose()函数来释放锁操作,当脚本执行完成时也可以自动调用。
示例
<?php
file = fopen("/PhpProject/sample.txt", "w+");
// exclusive lock
if(flock(file, LOCK_EX)) {
fwrite(file, "flock function");
// release lock
flock(file, LOCK_UN);
echo file;
} else {
echo "Error locking file!";
}
fclose(file);
?>