In SplFileObject flock()
function is used to set a portable lock on a file, which is used to lock or unlock the file. It is a built-in feature of the Standard PHP Library (SPL).
bool SplFileObject::flock( $operation, $isBlock)
$operation
: We can apply the following operations:
LOCK_SH
: It is used to obtain a shared lock. This is a read operation.
LOCK_EX
: It is used to obtain an exclusive lock. This is a write operation.
LOCK_NB
: It is used to not block while the lock is on.
LOCK_UN
: It is used to release a lock.
$isBlock
: If the lock is block than this parameter is set to be true.
It returns true
on success. Otherwise, it returns false
.
<?php$file = new SplFileObject("abc.txt", "w");if ($file->flock(LOCK_SH)) {$file->ftruncate(0);$file->fwrite("Characters");$file->flock(LOCK_UN);echo "Success Lock and Unlock Operation";}else if($file->isBlock){echo "Blocked";}else{echo "No Lock Available";}?>
Line 2: We create an SPL object with read and write permissions.
Lines 4–6: We add an exclusive lock to abc.txt
.
Lines 8 and 9: We release the lock.