私はfile()を使用して、タブ付きの配列のようなファイルを読み取ります。ファイルをロックしたいのですが、ファイルに対してflock()が機能していないようです。これを行うことは可能ですか?もしそうなら、どのように?そうでない場合、file()はファイルを最初からロックし、潜在的な共有の問題を軽減しますか?
2263 次
1 に答える
4
ドキュメント(特にコメント)によると、を介してロックされたファイルは読み取られませんflock
。
2つの選択肢があります。
fgets
(エラーのチェックなしで)ファイルを読み取ります:$f = fopen($file, 'r'); flock($f, LOCK_SH); $data = array(); while ($row = fgets($f)) { $data[] = $row; } flock($f, LOCK_UN); fclose($f);
file()
別の「ロックファイル」を使用してファイルを読み取ります。$f = fopen($file . '.lock', 'w'); flock($f, LOCK_SH); $data = file($file); flock($f, LOCK_UN); fclose($f); unlink($file . '.lock');
于 2011-01-25T02:03:15.013 に答える