Чтение и запись файла данных в php - PullRequest
2 голосов
/ 06 сентября 2011

недавно я использовал Maxmind Geoip, чтобы найти страну и город на основе IP.У этого есть огромный контент в файлах данных.но получение этих записей происходит в течение нескольких секунд.поэтому мне так любопытно изучить и использовать технологию в php.

Сначала я увидел, что некоторые видеофайлы используют файлы с расширением .dat, а теперь текстовую информацию.так что же такое расширение .dat на самом деле?Можно ли читать и писать в php.

Спасибо!

Ответы [ 3 ]

5 голосов
/ 06 сентября 2011

Насколько я знаю, расширение dat означает универсальный файл, в котором вы можете написать то, что вам нужно, в нужном вам формате.
Я имею в виду, что в каждом файле вы можете это сделать, но обычно, если вы найдете xml файл , вы предполагаете, что внутри вы найдете текст в формате xml; напротив, файлы dat не распознаются как файлы, которые можно декодировать с помощью специального программного обеспечения, если вы не знаете, кто и как их написал.

0 голосов
/ 06 сентября 2011

Здесь много вопросов.

Во-первых, файл представляет собой базу данных - он хранит данные. Существует множество моделей баз данных - реляционных, иерархических, объектно-ориентированных, векторных, гиперкубов, хранилищ ключей ... Существуют варианты реализации всех этих программ.

Некоторые базы данных более подходят для управления определенными структурами данных, чем другие. Геопространственные данные являются общей специализацией - настолько, что многие другие типы баз данных будут обеспечивать векторную функциональность (например, mysql и postgresql, которые являются реляционными базами данных).

Для большинства систем баз данных приложение, использующее службы базы данных, не обращается к файлу данных напрямую - вместо этого доступ осуществляется через другой процесс - это особенно актуально для PHP, поскольку обычно он выполняется как несколько независимых процессов без сложного файла. функциональность блокировки.

Так что, если вы хотите самостоятельно внедрить IP в географическую информацию, я бы порекомендовал придерживаться реляционной базы данных или хранилища ключей nosql (вам не нужны геопространственные данные для прямого поиска).

Но имейте в виду, что данные IP to geo lookup далеко не так точны / точны, как люди, продающие продукты, могли бы верить. Если ваша цель - получить точную информацию о местоположении ваших пользователей, HTML5 API геолокации предоставляет намного лучшие данные - проблема заключается в доступности функциональности в браузерах пользователей.

0 голосов
/ 06 сентября 2011

Файлы, скорее всего, будут в пользовательском формате, который они разработали;если это открытый исходный код, вы можете переопределить его на PHP (если он еще не написан на PHP), или, возможно, получить доступ к данным через API.

Скорость будет зависеть от того, что они будут проиндексированыв некотором роде, или это как «для каждой записи переместиться на 100 байтов дальше в файл».

...