2011-09-06 3 views
2

Недавно я использовал Maxmind geoip, чтобы найти страну & город на основе ip. Он имеет огромное содержимое внутри файлов dat. но извлечение этих записей происходит через несколько секунд. поэтому мне так любопытно учиться и использовать технологию в php.Чтение и запись файла данных в php

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

Спасибо!

ответ

5

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

+0

Да, Марко, это не стандартный формат. Но я заметил, что у них есть огромный список городов, база данных страны внутри файла данных, и она была восстановлена ​​за секунду. вот почему я заинтересован в ее использовании. Я думаю, что вы пытаетесь понять, мы не знаем, какой метод они использовали для создания этого dat-файла. это так? – VKGS

+0

Метод, используемый для его создания, не имеет значения. Формат, в котором хранятся данные, выполнен. – Mchl

+1

@Sekar: Я имею в виду, что для анализа файла вы должны ** знать, как организованы данные внутри. Затем мы могли бы «изучить», если города отсортированы в алфавитном порядке и если данные хорошо структурированы для быстрого поиска.Это может сильно повлиять на время. – Marco

0

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

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

0

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

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

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

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

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

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

+0

благодарим за ваши усилия. но мой вопрос заключается в чтении и записи .dat файлов с использованием php. чтобы объяснить, почему меня интересует технология, которую я использовал в качестве примера для использования geolocator maxminds. я знал, что информация о городе только на 80% точна, но я пытался обозначить те огромные данные, которые они могут получить за секунду для любого данного ip. – VKGS

+1

@Sekar: Вам не хватает смысла. Да, в значительной степени структура данных влияет на производительность, но уже есть очень эффективные реализации уровней доступа к данным с использованием различных моделей данных, доступных *, где * вы можете видеть код и структуры данных для себя *. Поиск GeoIP - это ** НЕ ** огромный набор данных (около 20 миллионов адресов - причина, по которой это не 4,3 миллиарда, должна быть очевидной), но даже это не огромный набор данных). Если мои запросы заняли второе место (на гораздо больших наборах данных), я был бы очень обеспокоен производительностью. – symcbean

+0

да! это была действительная точка, файлы данных собираются только около 20 мб. Может быть, это и есть причина для исполнения. Спасибо. – VKGS

Смежные вопросы