在 PHP 中保持文件锁直到关闭可以使用 flock 函数。下面是一个示例代码:
$file = 'path/to/file.txt';
// 打开文件以读写模式
$handle = fopen($file, 'a+');
// 获取独占锁定
if (flock($handle, LOCK_EX)) {
// 执行需要保持锁定的操作
fwrite($handle, 'Data to be written');
// 释放锁定
flock($handle, LOCK_UN);
} else {
// 无法获取锁定
echo '无法获取文件锁';
}
// 关闭文件
fclose($handle);
在上面的示例中,我们首先打开文件并获取文件句柄。然后使用 flock 函数获取独占锁定(LOCK_EX)。如果成功获取锁定,则可以执行需要保持锁定的操作(例如写入数据)。最后,我们使用 flock 函数释放锁定(LOCK_UN)并关闭文件。
请注意,锁定只对其他进程或线程生效。同一个进程中的其他部分仍然可以访问和修改文件。因此,您可能需要结合其他机制来确保文件在同一个进程中的其他地方不被访问。