2011-07-28 7 views
1

我有一個我正在編寫腳本的遊戲的高分檔案。不幸的是,當我將文件轉換爲數組並使用file()數組時,它會佔用大量內存。是否有可能將文件的大小限制爲100行?PHP:保持文件一定數量的行

+0

我覺得,你在再次閱讀文件之前編寫文件? – Andreas

回答

2

當然,如果你想在磁盤上只保留100行,只能寫100行。假設在寫入之前你有一個數組,你可以用array_slice($array, 0, 100)來做到這一點。

如果在寫入之前沒有數組,並且每次只添加幾行,則可以在讀取文件之後通過在開始處切片來減少行數。

對於這兩個建議,我假設數組被排序,所以「top」100在數組的開始順序排列。

2

我同意上面的答案,我不能評論尚未....

如果你想抵消片,你可以使用[array_slice($array, offset, 100)。因此,根據array_slice手冊頁,如果$ array是(a,b,c,d),那麼$array_slice($array, 2, 2);將返回c, d

您也可以更改或添加代碼到您的應用程序,並使其只能看到他們的分數,從而增加文件數量,但減少整體文件大小。儘管如此,你應該把高分列入前10名,20名或前100名。我不認爲任何人,除了那個贏得比分的人都在關注誰排在第97位。

您也可以使用filesize()函數。設置條件,以便如果文件超過最大大小,則對其進行分片,創建新文件並刪除原始文件。

+0

+1好點.. – dukevin

+0

我認爲文件大小限制通常發生在比php更低的級別。 –