ホームページ  >  記事  >  バックエンド開発  >  PHPファイルロック書き込み

PHPファイルロック書き込み

巴扎黑
巴扎黑オリジナル
2016-11-12 11:19:581302ブラウズ

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

flock(int $handle, int $operation) 関数で操作されるハンドルは、開いているファイル ポインターである必要があります。

operation は次の値のいずれかになります:

共有ロック (プログラムの読み取り) を取得するには、operation を LOCK_SH に設定します (PHP 4.0.1 より前のバージョンでは 1 に設定)。

排他ロックを取得するには(プログラムの書き込み)、operationをLOCK_EXに設定します(PHP 4.0.1より前のバージョンでは2に設定)。

ロック (共有または排他) を解放するには、操作を LOCK_UN に設定します (PHP 4.0.1 より前のバージョンでは 3 に設定)。

ロック時に flock() をブロックしたくない場合は、操作に LOCK_NB を追加します (PHP 4.0.1 より前のバージョンでは 4 に設定)。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。