PHP flock() 関数


❮ 完全な PHP ファイルシステム・リファレンス

定義と用法

flock() 関数は、ファイルをロックまたはロックの解除を行います。

この関数成功した場合はTRUE、失敗した場合はFALSEを返します.

構文

flock(file,lock,block)

パラメータ 説明
file 必須。ロックやロックを解除するオープンファイルを指定する
lock 必須。使用するロックの種類を指定する。

指定可能な値:

  • LOCK_SH - 共有ロック (reader)。他のプロセスがファイルにアクセスできるようにする
  • LOCK_EX - 排他ロック (writer)。他のプロセスがファイルにアクセスできないようにする
  • LOCK_UN - 共有ロックまたは排他ロックの解除
  • LOCK_NB - ロック中に他のプロセスをブロックしない
block 任意。ロック中に他のプロセスをブロックする場合に 1 を設定する

チップスと注意

注: これらのロックは現在のPHPプロセスにのみ適用されます。パーミッションが許せば、 他のプロセスはPHPロックファイルを変更または削除できます。

注: flock() は、Windowsでは必須です。

チップ: fclose()もロックを解除します。これは、スクリプトの終了時に自動的に呼び出されます。


<?php

$file = fopen("test.txt","w+");

// exclusive lock
if (flock($file,LOCK_EX))
  {
  fwrite($file,"Write something");
  // release lock
  flock($file,LOCK_UN);
  }
else
  {
  echo "Error locking file!";
  }

fclose($file);
?>

❮ 完全な PHP ファイルシステム・リファレンス