PHP.mk документација

SplFileObject::flock

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

splfileobject.flock.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека splfileobject.flock.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
SplFileObject::flock

Референца за `splfileobject.flock.php` со подобрена типографија и навигација.

splfileobject.flock.php

SplFileObject::flock

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::flockПреносливо заклучување на датотеки

= NULL

public SplFileObject::flock(int $operation, int &$wouldBlock = null): bool

Заклучува или отклучува датотека на ист пренослив начин како flock().

Параметри

operation

operation е една од следниве:

  • LOCK_SH за стекнување заедничко заклучување (читател).
  • LOCK_EX за стекнување ексклузивно заклучување (писател).
  • LOCK_UN за ослободување на заклучување (заедничко или ексклузивно).

Исто така е можно да се додаде LOCK_NB како битно поле на една од горенаведените операции, ако flock() не треба да блокира за време на обидот за заклучување.

wouldBlock

Постави на true ако заклучувањето би блокирало (услов за грешка EWOULDBLOCK).

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.

Примери

Пример #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!";
}
?>

Види Исто така

  • flock() Протокот што треба да се провери.

Белешки од корисници 2 забелешки

digitalprecision at gmail dot com
пред 15 години
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.
Ахмед Реин
3 години пред
@digitalprecision What you said is not completely true, ftruncate(0); is needed if there was a write to the file before the lock is acquired. You also may need fseek(0); to move back the file pointer to the beginning of the file

<?php
$file = new SplFileObject("/tmp/lock.txt", "w");
$file->fwrite("xxxxx"); // write something before the lock is acquired
sleep(5); // wait for 5 seconds

if ($file->flock(LOCK_EX)) { // do an exclusive lock
    $file->fwrite("Write something here\n");
    $file->flock(LOCK_UN);   // release the lock    
} else {
    echo "Couldn't get the lock!";
}
?>

"lock.txt" content:

xxxxxWrite something here
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.