2012-05-07 7 views
3

実行時にphpファイルを変更する必要があります。
これは緊急時に設定の1つに変更が必要な設定ファイルです。
私の質問は、そのファイルにアクセスしようとする他のセッションがファイルが書き換えられるまで延期され、ファイルが見つからなかったというセッションをクラッシュさせないように、書き込み前にファイルをlockにできるかどうかです。実行中にphpファイルの名前を変更する - ロックが可能ですか?

答えて

3

はい、マニュアルから

flock機能のマニュアルエントリを参照してください:あなたは時代遅れのファイルシステム(FAT)flock()を使用している場合

<?php 

$fp = fopen("/tmp/lock.txt", "r+"); 

if (flock($fp, LOCK_EX)) { // acquire an exclusive lock 
    ftruncate($fp, 0);  // truncate file 
    fwrite($fp, "Write something here\n"); 
    fflush($fp);   // flush output before releasing the lock 
    flock($fp, LOCK_UN); // release the lock 
} else { 
    echo "Couldn't get the lock!"; 
} 

fclose($fp); 

?> 

はどうやら例えば、いくつかの注意点があり、常にfalseを返します。 PHPをISAPI拡張モジュールとして使用している場合、flockは、ファイルが並列スレッドで実行されている他のPHPスクリプトによって変更または読み込まれることをロックしません。

関連する問題