2011-07-28 2 views
1

私はスクリプトを作成しているゲームで最高のファイルを持っています。残念ながら、ファイルをfile()に変換して配列すると、大量のメモリが必要になります。ファイルのサイズを100行に制限することは可能ですか?PHP:ファイルに一定数の行を保持する

+0

私はあなたがもう一度それを読む前にファイルを書くと思いますか? – Andreas

答えて

2

もちろん、100行しかディスクに保存しない場合は、100行だけ書き込んでください。書き込む前に配列があるとしたら、array_slice($array, 0, 100)でこれを行うことができます。

書き込む前に配列がなく、たびに数行しか追加しない場合は、ファイルを読み込んだ直後に、スライスすることで行数を減らすことができます。

これらの両方の提案では、配列の先頭に「トップ」100が順に並ぶように配列がソートされていると仮定しています。

2

あなたはスライスをオフセットしたい場合は、[array_slice($array, offset, 100)]を使用することができます

....私は上記の答えに同意し、私はまだコメントできません。したがって、array_sliceのマニュアルページによれば、$配列が(a、b、c、d)の場合、$array_slice($array, 2, 2);c, dを返します。

また、アプリケーションにコードを変更したり、コードを追加したりして、ユーザーがスコアのみを表示するようにして、ファイル数を増やすこともできますが、ファイル全体のサイズを縮小することもできます。あなたはおそらく上位10、20、またはトップ100に高いスコアをスライスする必要があります。スコアを獲得した人以外の誰もが97位に来た人を気にしないと思う。

filesize()機能を使用することもできます。ファイルが最大サイズを超えている場合は、スライスして新しいファイルを作成し、元のファイルを削除するように条件を設定します。

+0

+1良い点.. – dukevin

+0

ファイルサイズの制限は、通常はPHPよりも低いレベルで起こると思います。 –

関連する問題