0

PHP の unpack 関数を使用して、ファイルから配列を作成しようとしています。問題は、PHP が大きなファイルを操作するとメモリ不足になることです。スクリプトは、完了時に 3 ~ 4 MB のファイルを処理する必要がありますが、それでもかなり高速です。基本的な考え方は次のとおりです。

<?php
$file = 'uploads/file.pcg';
$array = unpack('C*', file_get_contents($file));
?>

PHP をオーバーロードせずにファイル全体から一度に配列を生成する方法はありますか、またはスクリプトインスタンスごとに妥当な量のデータを処理する唯一のオプションですか? - 約 1 MB はかなり高速のようです。- 配列だけでも、許可されている制限よりも多くのメモリが必要になる可能性がありますか?

また...似たようなものがすでにここに投稿されている場合は申し訳ありませんが、そうではなかったと思います。:D

お手伝いありがとう。

4

1 に答える 1

0

file_get_contentsはファイル全体をメモリにロードするため、ini ファイルのmemory_limitを増やす必要があるようです。基本的に、大きな配列を取得したい場合は、とにかくそれを行う必要があります。または、ファイル全体をメモリに読み込まずに、ファイルを読み取って段階的に解凍する他の方法を探すこともできます。

于 2012-09-10T10:26:09.593 に答える