Это - два вопроса о части:
то, Как выполнить итерации по записям Карты - @ScArcher2, имеет , ответил настолько отлично.
, Что является порядком повторения - если Вы просто используете Map
, тогда строго говоря, существует никакие гарантии упорядочивания . Таким образом, Вы не должны действительно полагаться на упорядочивание, данное никакой реализацией. Однако SortedMap
интерфейс расширяет Map
и обеспечивает точно, что Вы ищете - реализации будут aways давать последовательный порядок сортировки.
NavigableMap
другое полезное расширение - это SortedMap
с дополнительными методами для нахождения записей их заказанным положением в наборе ключей. Таким образом, потенциально это может устранить необходимость итерации во-первых - Вы могли бы быть в состоянии найти определенное entry
, Вы после используете higherEntry
, lowerEntry
, ceilingEntry
, или floorEntry
методы. descendingMap
метод даже дает Вам явный метод инвертирование пересекающегося порядка .
Если вам действительно нужно делать это самостоятельно, вы должны использовать метод sqlite. Хотя есть небольшие накладные расходы (из-за открытия файла базы данных), также могут быть заметные преимущества при хранении структурированных данных.
Вы можете, например, добавить поле даты, а затем получать ежедневные / ежечасные / ежемесячные / любые данные для каждого стр.
Вы также можете добавить IP-адрес для каждого посетителя, а затем извлечь данные о посещениях. Таким образом, вы можете легко извлекать данные о поведении пользователей вашего сайта.
Вы также можете хранить пользовательский агент и ОС своих посетителей, чтобы вы знали, на какие браузеры следует ориентироваться или нет.
В общем, вставив это вид данных в базе данных тривиален. Вы можете многому научиться из этих данных, если потратите время на их изучение. По этой причине обычно лучше использовать базы данных, поскольку они
Google Analytics . Если только вам не понадобится , чтобы сделать это собственными силами.
Внедрение вашего собственного решения на PHP может быть сколь угодно простым или сложным. Вы можете создать таблицу для хранения ip-адреса (не всегда надежного), местоположения страницы и даты. Это позволит вам отслеживать уникальные обращения за каждый день. Вы можете запланировать задачу, чтобы уменьшить количество записей до простой строки date
, numOfUnique
.
Другой метод - это анализ ваших файлов журналов. Вы также можете делать это каждые 24 часа или около того.
Вы можете запланировать задачу, чтобы уменьшить количество записей до простой строки date
, numOfUnique
.
Другой метод - это анализ ваших файлов журналов. Вы также можете делать это каждые 24 часа или около того.
Вы можете запланировать задачу, чтобы уменьшить количество записей до простой строки date
, numOfUnique
.
Другой метод - это анализ ваших файлов журналов. Вы также можете делать это каждые 24 часа или около того.
Это невозможно ни в одном из ваших случаев. Приложения PHP запускаются, когда пользователь что-то запрашивает у них, они генерируют результат и затем закрываются. Таким образом, даже если вы не закроете соединение с базой данных или файл, они будут закрыты автоматически. Но я не знаю, почему открытие соединения с базой данных или файла для записи может быть проблемой?
Трудно дать особенно полезные ответы в отсутствие ожидаемого объема трафика (кроме комментария Джонатана Сэмпсона о том, что вам может быть лучше использовать Google Analytics).
Файл- вариант на основе:
Я не думаю, что можно оставить файл открытым. Кроме того, вы, вероятно, столкнетесь с проблемами одновременной записи, если не используете какой-либо механизм блокировки.
SQLite option:
Я думаю, что это, вероятно, выход, если у вас еще не открыта база данных. Я сомневаюсь, что открытие / закрытие базы данных каждый раз будет узким местом - попробуйте и профилируйте.