This article describes the PHP file writing method with examples to cope with multi-threaded writing. The specific code is as follows:
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; }
Among themthe handle operated by the flock(int $handle, int $operation) function must be an open file pointer.
operation can be one of the following values:
To obtain a shared lock (reading program), set operation to LOCK_SH (set to 1 in versions prior to PHP 4.0.1).
To obtain an exclusive lock (writing program), set operation to LOCK_EX (set to 2 in versions prior to PHP 4.0.1).
To release a lock (whether shared or exclusive), set operation to LOCK_UN (set to 3 in versions prior to PHP 4.0.1).
If you don't want flock() to block on lock, add LOCK_NB to the operation (set to 4 in versions prior to PHP 4.0.1).
In addition, fclose() is used to release the lock operation and is called when the code execution is completed.