• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • SplFileObject::flock()

    (PHP 5 >= 5.1.0, PHP 7)

    Portable file locking

    说明

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

    Locks or unlocks the file in the same portable way as flock().

    参数

    $operation

    $operationis 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

    范例

    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$wouldblockparameter 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.

    参见

    For the record, the example given here has an explicit command to truncate the file, however with a 'write mode' of 'w', it will do this for you automatically, so the truncate call is not needed.