Programming Tutorials

(追記) (追記ここまで)

Handling file locks in PHP

By: Cory Christison in PHP Tutorials on 2012年04月05日 [フレーム]

While can do wonders if you need something to queue writing to a file while something else has access to it.

Here is my simple example:

<?php
 function write ($data, $file, $write_mode="w") {
 $lock = $file . ".lock";
 // run the write fix, to stop any clashes that may occur
 write_fix($lock);
 // create a new lock file after write_fix() for this writing session
 touch( $lock );
 // write to your file
 $open = fopen($file, $write_mode);
 fwrite($open, $data);
 fclose($open);
 // kill your current lock
 unlink($lock);
 }
 function write_fix ($lock_file) {
 while( file_exists($lock_file){
 // do something in here?
 // maybe sleep for a few microseconds
 // to maintain stability, if this is going to
 // take a while ?? [just a suggestion]
 }
 }
?>

This method is not recommended for use with programs that will be needing a good few seconds to write to a file, as the while function will eat up alot of process cycles. However, this method does work, and is easy to implement. It also groups the writing functions into one easy to use function, making life easier.




(追記) (追記ここまで)


Add Comment

JavaScript must be enabled for certain features to work
* Required information
1000

Comments

No comments yet. Be the first!
(追記) (追記ここまで)
(追記) (追記ここまで)

AltStyle によって変換されたページ (->オリジナル) /