function file_write($file_name, $text, $mode='a', $timeout=30){ $handle = fopen($file_name, $mode); while($timeout>0){ if ( flock($handle, LOCK_EX) ) { $timeout--; sleep(1); } } if ( $timeout > 0 ){ fwrite($handle, $text.'\n'); flock($handle, LOCK_UN); fclose($handle); return true; } return false; }
Das von der Funktion flock(int $handle, int $operation) betriebene Handle muss ein Zeiger auf eine geöffnete Datei sein.
Operation kann einer der folgenden Werte sein:
Um eine gemeinsame Sperre (Leseprogramm) zu erhalten, setzen Sie Operation auf LOCK_SH (in Versionen vor PHP 4.0.1 auf 1 gesetzt).
Um eine exklusive Sperre (Schreibprogramm) zu erhalten, setzen Sie Operation auf LOCK_EX (in Versionen vor PHP 4.0.1 auf 2 gesetzt).
Um eine Sperre (ob gemeinsam oder exklusiv) aufzuheben, setzen Sie Operation auf LOCK_UN (in Versionen vor PHP 4.0.1 auf 3 gesetzt).
Wenn Sie nicht möchten, dass flock() blockiert, wenn es gesperrt ist, fügen Sie LOCK_NB zur Operation hinzu (in Versionen vor PHP 4.0.1 auf 4 gesetzt).