(PHP 5 >= 5.1.0, PHP 7)
SplFileObject::flock — Portable file locking
$operation
[, int &$wouldblock
] ) : boolLocks or unlocks the file in the same portable way as flock().
operation
operation
is one of the following:
LOCK_SH
to acquire a shared lock (reader).
LOCK_EX
to acquire an exclusive lock (writer).
LOCK_UN
to release a lock (shared or exclusive).
It is also possible to add LOCK_NB
as a bitmask to one
of the above operations, if flock() should not
block during the locking attempt.
wouldblock
Set to TRUE
if the lock would block (EWOULDBLOCK errno condition).
Returns TRUE
on success or FALSE
on failure.
Example #1 SplFileObject::flock() example
<?php
$file = new SplFileObject("/tmp/lock.txt", "w");
if ($file->flock(LOCK_EX)) { // do an exclusive lock
$file->ftruncate(0); // truncate file
$file->fwrite("Write something here\n");
$file->flock(LOCK_UN); // release the lock
} else {
echo "Couldn't get the lock!";
}
?>
Version | Description |
---|---|
5.5.22, 5.6.6 |
Added support for the wouldblock parameter on
Windows.
|
5.3.2 | The automatic unlocking when the file's resource handle is closed was removed. Unlocking now always has to be done manually. |