SplFileObject flock()函数是PHP中的标准PHP库(SPL)的内置函数,用于将可移植锁应用于文件。
用法:
bool SplFileObject::flock( $opr, $isBlock )
参数:该函数接受上述和以下所述的两个参数:
$opr:它用于从以下列表中指定要应用的操作:
LOCK_SH:获取共享锁(读取器)。
LOCK_EX:获取排他锁(写入器)。
LOCK_UN:释放锁。
LOCK_NB:锁定时不阻塞。
$isBlock:如果锁为块锁,则此参数设置为True。
返回值:如果成功,则此函数返回True;如果失败,则返回False。
注意:确保以下程序中使用的文件名为gfg.txt,并且应具有读写权限。
以下示例程序旨在说明PHP中的SplFileObject::flock()函数:
程序1:
// Create Spl Object
$file = new SplFileObject("gfg.txt", "w");
// Add an Exclusive lock to gfg.txt
if ($file->flock(LOCK_SH)) {
$file->ftruncate(0);
$file->fwrite("Write GFG inside the gfg.txt");
// Release the lock
$file->flock(LOCK_UN);
echo "Success Lock and Unlock Operation";
}
else {
echo "No Lock Available";
}
?>
输出:
Success Lock and Unlock Operation.
程序2:
// Create SplFile Object
$file = new SplFileObject("gfg.txt", "w");
// Add an Exclusive lock to gfg.txt
if ($file->flock(LOCK_EX)) {
$file->ftruncate(0);
$file->fwrite("Write GFG inside the gfg.txt");
// Release the lock
$file->flock(LOCK_UN);
echo "Success Exclusive Lock and Unlock Operation";
} else {
echo "No Lock Available";
}
?>
输出:
Success Exclusive Lock and Unlock Operation