PHP flock() 函数
定义和用法
flock() 函数锁定或释放文件。
如果成功,则返回 true。如果失败,则返回 false。
语法
flock(De actie van flock(),lock,block)
参数 | 描述 |
---|---|
De actie van flock() | 必需。规定要锁定或释放的已打开的文件。 |
lock | 必需。规定要使用哪种锁定类型。 |
block | 可选。若设置为 1 或 true,则在锁定时阻止其他进程。 |
说明
omschrijving De actie van flock() file
lock Moet een al geopend bestandspunt zijn.
- De parameter kan een van de volgende waarden zijn: lock in op LOCK_SH (in versies van PHP 4.0.1 en eerder ingesteld op 1).
- Om een exclusieve lock te verkrijgen (voor schrijfprocessen), stel dan lock in op LOCK_EX (in versies van PHP 4.0.1 en eerder ingesteld op 2).
- Om de lock te vrijgeven (ofwel gedeeld of exclusief), stel dan lock instellen op LOCK_UN (in versies van PHP 4.0.1 en eerder ingesteld op 3).
- Als je wilt dat flock() niet blokkeert tijdens het locken, geef dan lock voeg LOCK_NB (in versies van PHP 4.0.1 en eerder ingesteld op 4) toe.
Tips en opmerkingen
Tip:Kan worden gebruikt fclose() Om de lock-operatie te vrijgeven, wordt de code ook automatisch aangeroepen wanneer de uitvoering van de code is voltooid.
Opmerking:Omdat flock() een bestandspunt nodig heeft, moet mogelijk een speciale lock-bestand gebruikt worden om de toegang tot de bestanden te beschermen die in schrijfmodus moeten worden geopend (voeg "w" of "w+" toe aan de fopen() functie).
Voorbeeld
<?php $file = fopen("test.txt","w+"); // exclusive locking if (flock($file,LOCK_EX)) { fwrite($file,"Write something"); // release lock flock($file,LOCK_UN); } else { echo "Error locking file!"; } fclose($file); ?>