ファイル - ファイル操作に関するphp - 1行を読み取り、1行を処理し、その行を削除します
PHP中文网
PHP中文网 2017-06-26 10:49:01
0
3
940

1. 現在 300M のファイルがありますが、その中のデータを 1 行ずつ読み取って、各行ごとに処理する必要があります (冪等にすることはできません)。しかし、処理中にシステムがハングアップするのではないかと心配です。どの行を再度読み取ればよいのかわかりません。以前に処理した行が再度処理されるのではないかと心配です。
2. 解決策 I今考えているのは、1行読み込んで1行処理してその行を削除することですが、プログラムがハングアップしても、もう一度最初から読み込みを実行しても、元々処理していた行は読み込まれません
3. 専門家が良い解決策を持っているかどうか見てみましょう。ありがとう

//1 行を読み取って 1 行を削除したい場合、どうすればよいですか? または、同じ行を 2 回実行しないようにするためのより良い解決策はありますか?

リーリー
PHP中文网
PHP中文网

认证0级讲师

全員に返信(3)
淡淡烟草味

1行ずつ読み取ると規定されているので、ファイルを複数の小さなファイルに分割するスクリプト(Linux 中的 splitコマンドなど、名前に注意してください)を書いてから、読み取り操作をループするスクリプトを書いてみてはいかがでしょうか。

いいねを押す +0
伊谢尔伦

必要な効果を達成するために方法を変更できると思います。行を読み取り、その行を処理した後、その行の後に特殊な記号を追加できます。各行をループすると、どの行が処理されたかがわかります。プログラムがハングした場合、再度実行するときに、その特殊記号が最後に出現した時刻を直接検索します。次の行は、実行を開始する場所です。

いいねを押す +0
ringa_lee

処理位置を記録するために別のファイルを作成します。ファイル全体の行番号とオフセットを記録することもできます。

読み取り中にファイルを変更すると遅すぎます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート