PHPでロック(flock)されたファイルを書き込む方法

マルチスレッドの書き込みに対処するためのPHPファイル書き込み方法。

php処理コード:

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;
}

Development

Posted by arkgame