3

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

4

1 に答える 1

3

はい、群れ機能のマニュアルエントリを参照してください

マニュアルの例:

<?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);

?>

どうやら、いくつかの注意点があります。たとえば、時代遅れのファイルシステム (FAT)flock()を使用している場合、常に false が返されます。PHP を ISAPI 拡張機能として使用している場合はflock、並列スレッドで実行されている他の PHP スクリプトによってファイルが変更または読み取られることをロックしません。

于 2012-05-07T19:13:25.157 に答える