note 41263 added to function.flock
| From: | m4v3r at o2 dot pl | Date: | Sun, 04 Apr 2004 20:44:30 +0000 |
| Subject: | note 41263 added to function.flock | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-67632@lists.php.net to get a copy of this message | ||
Following is based on below comments. When something goes wrong, script will perform backup of
writen data to randomly named file in temp dir.
<?
function safewrite($filename, $data){
$rand = microtime();
$rand = md5($rand);
$temp = fopen("temp/$rand", "w");
fwrite($temp, $data);
fclose($temp);
$otw = fopen($filename, "a+");
if(flock($otw, LOCK_EX)){
ftruncate($otw, 0);
if(!fwrite($otw, $data)) $err = 1;
flock($otw, LOCK_UN);
fclose($otw);
} else {
$err = 1;
}
if($err == 1 || (filesize($filename) == 0 && strlen($data) <> 0)){
die("<b>There was an error while writing to $filename. Contact site
administrator!</b>");
} else {
unlink("temp/$rand");
}
}
?>
Hope it helps.
----
Manual Page -- http://www.php.net/manual/en/function.flock.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+41263
Delete -- http://master.php.net/manage/user-notes.php?action=delete+41263&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+41263&report=yes
Search -- http://master.php.net/manage/user-notes.php