2011-09-06 5 views
2

최근 Maxmind geoip을 사용하여 ip를 기반으로 국가 & 도시를 찾습니다. 그것은 dat 파일 안에 거대한 내용이 있습니다. 그러나 그 기록의 검색은 1 초 내에 발생합니다. 그래서 나는 PHP에서이 기술을 배우고 사용하기에 호기심이 많습니다.PHP에서 dat 파일을 읽고 쓰십시오.

처음에는 일부 .dat 확장자 파일과 이제는 텍스트 정보를 사용하는 비디오 파일을 보았습니다. 실제로 .dat 확장자는 무엇입니까? PHP로 읽고 쓰는 것이 가능합니까?

감사합니다.

답변

5

확장자는 필요한 형식을 원하는 형식으로 쓸 수있는 일반 파일을 의미합니다.
내 말은, 모든 파일에서 그렇게 할 수 있지만 일반적으로 xml 파일을 찾으면 xml 형식의 텍스트를 찾을 수 있다고 가정합니다. 반대로 dat 파일은 누가 어떻게 작성했는지 모르는 경우 특정 소프트웨어로 디코딩 할 수있는 것으로 인식되지 않습니다.

+0

예 Marco, 표준 형식이 아닙니다. 그러나 내가 알아 차 렸던 것은 dat 파일 안에 도시, 국가 데이터베이스의 거대한 목록을 가지고 있으며 그것은 초 이내에 검색되었습니다. 그래서 나는 그것을 사용하는 데 관심이있다. 나는 당신이 평균을 시도하고 있다고 생각하는데, 우리는 그들이 그 dat 파일을 만드는 데 어떤 방법을 사용했는지 모른다. 그렇지? – VKGS

+0

생성 방법은 중요하지 않습니다. 데이터가 저장되는 형식. – Mchl

+1

@Sekar : 파일을 파싱하려면 ** 내부 데이터가 어떻게 구성되어 있는지 ** 알아야합니다. 도시가 사전 순으로 정렬되고 데이터가 빠르게 검색되도록 구조화되어 있다면 우리는 "연구 할 수 있습니다.이것은 시간의 큰 차이를 만들 수 있습니다. – Marco

0

파일은 개발 한 사용자 지정 형식이 될 가능성이 큽니다. 오픈 소스라면 PHP로 다시 구현하거나 (이미 PHP로 작성되지 않은 경우) API를 통해 데이터에 액세스 할 수 있습니다.

속도는 어떤 식 으로든 색인이 생성되거나 "모든 레코드가 파일에 100 바이트 이상 이동하면"과 같이 나타납니다.

0

여기에 많은 질문이 있습니다.

먼저 파일은 database이며 데이터를 저장합니다. 관계형, herarchical, 객체 지향, 벡터, 하이퍼 큐브, 키 스토어 등 많은 데이터베이스 모델이 있습니다.이 모든 것들을 선반 밖에서 구현할 수 있습니다.

일부 데이터베이스는 특정 데이터 구조를 관리하는 데 더 적합합니다. 지형 공간 데이터는 일반적인 전문 분야입니다. 많은 다른 데이터베이스 유형이 벡터 기능을 제공합니다 (예 : 관계형 데이터베이스 인 mysql 및 postgresql).

대부분의 데이터베이스 시스템에서 데이터베이스 서비스를 사용하는 응용 프로그램은 데이터 파일에 직접 액세스하지 않고 다른 프로세스를 통해 액세스를 중재합니다. 일반적으로 정교하지 않은 다중 독립 프로세스로 실행되므로 PHP와 관련이 있습니다 파일 잠금 기능.

지리 정보에 IP를 구현하려는 경우 관계형 데이터베이스 또는 nosql 키 저장소 (전방 조회에 지형 공간이 필요하지 않음)를 사용하는 것이 좋습니다.

IP에서 지역 검색 데이터는 제품을 판매하는 peolpe가 믿을만한 정확한 정확도/정확도를 갖지 않습니다. 귀하의 목표가 사용자에 대한 정확한 위치 정보를 얻는 것이라면 HTML5 geolocation API이 훨씬 우수한 데이터를 제공합니다. 문제는 사용자의 브라우저에서 기능을 사용할 수 있다는 것입니다.

+0

감사합니다. 하지만 내 질문은 PHP를 사용하여 .dat 파일을 읽고 쓰는 것입니다. 왜 내가 maxminds geolocator를 예로 든 기술에 관심이 있는지 설명합니다. 도시 정보가 80 % 정확하다는 것을 알았지 만 주어진 IP에 대해 초 단위로 검색 할 수있는 거대한 데이터가 있음을 의미했습니다. – VKGS

+1

@Sekar : 요점을 놓치고 있습니다. 네, 상당 부분 데이터 구조가 성능에 영향을 미치지 만, 이미 다른 데이터 모델을 사용하여 데이터 액세스 계층을 매우 효율적으로 구현할 수 있습니다. * 사용자가 직접 코드 및 데이터 구조를 볼 수있는 곳에 * 사용할 수 있습니다. GeoIP 조회는 거대한 데이터 세트가 아닙니다 (약 2 천만 개의 주소 - 이것이 43 억이 아닌 이유는 분명합니다. 그러나 거대한 데이터 세트는 아닙니다). 내 쿼리가 훨씬 더 큰 데이터 세트에서 완료되는 데 걸리면 성능에 대해 매우 염려 할 것입니다. – symcbean

+0

예! 그것은 유효한 포인트 였고, dat 파일은 약 20 메가 바이트 만 주위에 온다. 그게 공연의 이유일지도 몰라. 고마워. – VKGS

관련 문제