PHP: Хранение файла определенное количество строк - PullRequest
1 голос
/ 28 июля 2011

У меня есть файл рекордов для игры, которую я пишу. К сожалению, это занимает много памяти, когда я превращаю файл в массив и выполняю функцию file (). Можно ли ограничить размер файла до 100 строк?

Ответы [ 2 ]

2 голосов
/ 28 июля 2011

Я согласен с приведенным выше ответом и пока не могу комментировать ....

Если вы хотите сместить срез, вы можете использовать [array_slice($array, offset, 100)].Так, согласно справочной странице array_slice, если $ array (a, b, c, d), то $array_slice($array, 2, 2); вернет c, d.

Вы также можете изменить или добавить код в свое приложениеи сделать так, чтобы пользователи видели только свои оценки, увеличивая таким образом количество файлов, но уменьшая общий размер файла.Вы, вероятно, должны просто нарезать высокие баллы в топ-10, 20 или топ-100, хотя.Я не думаю, что кто-либо, кроме человека, выигравшего счет, заботится о том, кто занял 97-е место.

Вы также можете использовать функцию filesize().Настройте условие так, чтобы, если размер файла превышал максимальный, вы нарезали его, создавали новый файл и удаляли оригинал.

2 голосов
/ 28 июля 2011

Конечно, если вы хотите сохранить только 100 строк на диске, пишите только 100 строк. Предположим, у вас есть массив перед записью, вы можете сделать это с помощью array_slice($array, 0, 100).

Если у вас нет массива до записи, и вы добавляете только несколько строк каждый раз, вы можете уменьшить счетчик строк, разрезая их в начале сразу после чтения файла.

Для обоих этих предположений я предполагаю, что массив отсортирован так, что «верхняя» 100 находится последовательно в начале массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...