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