主にアイデアを提供します。
$lock0 と $lock1 はファイルロック識別子です。ユーザーがファイルを開くと、$lock0 と $lock1 が生成されます。ファイルが開かれていないときは、これらは存在しません。
実際、最も重要なことは、ファイルの現在のステータスを表す識別子を持たせることです。$lock0 と $lock1 がそのような役割を果たします。
コードをコピーします コードは次のとおりです:
// ファイルをロックします。時間がかかりすぎる場合はタイムアウトします。
function lock ($lock, $tries) {
$ lock0 = ".{$lock}0";
$lock1 = ".{$lock}1"
for ($i=0; $i if (!is_file($lock0) )) {
touch($lock0); 1 を返す
ファイル。
関数ロック解除 ($lock) {
unlink(".{$lock}1")
unlink(".{$lock}0); ");
}
// 使用例。
$filename = " somefile";
$data = "stuff and thingsn";
$tries = 10;
if (lock($filename, $tries)) {
$ h = fopen($filename, "a") または die();
fwrite($h, $data); fopen($filename, "a ") または die(); 「」の後の $filename をロックします。($tries* 100) . "ミリ秒!";;
}
ロック解除 ($ ファイル名); else {
//die ("$ 試行回数 * 100)。
上記では、flock の側面を含め、ファイル ロックを実装する flock をシミュレートする方法を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。