SplFileObject::flock

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::flockPortable file locking

说锟斤拷

public SplFileObject::flock ( int $operation [, int &$wouldblock ] ) : bool

Locks 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).
  • LOCK_NB to not block while locking.

wouldblock

Set to TRUE if the lock would block (EWOULDBLOCK errno condition).

锟斤拷锟斤拷值

锟缴癸拷时锟斤拷锟斤拷 TRUE锟斤拷 锟斤拷锟斤拷锟斤拷失锟斤拷时锟斤拷锟斤拷 FALSE锟斤拷

锟斤拷锟斤拷

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!";
}
?>

锟斤拷锟斤拷锟斤拷志

锟芥本 说锟斤拷
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.

锟轿硷拷

  • flock() - 锟斤拷锟斤拷锟斤拷询锟侥硷拷锟斤拷锟斤拷