$file fopen $fileOpenMode ); Flock ($file$lockModedie ("Can ' t lock"); // ... Flock ($file, lock_un); fclose ($file);
$fileOpenMode: "R" (read);"r+" (write) (Cannot use "w", otherwise the contents of the file have been emptied after opening and locking)
$lockMode: Lock_sh (read); lock_ex (write)
<?PHPSleep(3);return;$mode=$_get[' Mode '];Switch($mode){ Case"R":$fileOpenMode= "R"; $lockMode=Lock_sh; $sleepTime= 3; Break; Case"W":$fileOpenMode= "r+"; $lockMode=lock_ex; $sleepTime= 5; Break;}Echo"Querytime:". Time() . "<br>";$startTime= Time();Echo"Mode:".$mode. "<br>";$file=fopen("Test.txt",$fileOpenMode);Flock($file,$lockMode) or die("Can ' t lock");Sleep($sleepTime);Switch($mode){ Case"R":Echo"Data:".fgets($file) . "<br>"; Break; Case"W":Echo"Data:". " (written) ". "<br>"; fputs($file, "Write data info file at". Time()); Break;}Flock($file,lock_un);fclose($file);Echo"Time:". ( Time()-$startTime) . "<br>";Echo"Now:". Time() . "<br>";?>
PHP file read/write lock