1

XMLドキュメントを開き、DOMを取得して変更し、元のドキュメントを上書きするPHPスクリプトがあります。
私が理解しているように、PHP呼び出しは非同期で行われるため、複数のユーザーが同時にドキュメントにアクセスし、2番目の保存で最初の保存を上書きして保存することができます。
私はこれが当てはまらないようにする必要があります。flock()現在のプロセスにのみ適用されるため、 使用できません。どうすればこれを実現できますか?

4

2 に答える 2

3

実際、flock()は現在のプロセスにのみ適用されるわけではありません。

http://php.net/manual/en/function.flock.php

ただし、ローカルファイルシステムを使用しますが、負荷分散されたWebサーバーを使用している場合は問題になる可能性があります。また、flockが機能するためには、ファイルを「競合」している可能性のある他のプロセスもflockを使用していることを確認する必要があります。そうしないと、プロセスが相互に「ステップ」します。

于 2012-06-28T02:38:16.317 に答える
-1

ファイルをロックします。

空のファイル(xml.lockなど)を作成して、xmlが他のプロセスによって開かれていることを示します。xmlの変更が完了したら、空のファイルを削除します。

于 2012-06-28T02:14:57.810 に答える