PHP - проверка почтового индекса, если он покрыт

Сейчас я разрабатываю сайт для электротехнической компании. Им нужна какая-то проверка почтового индекса. Это как-то будет работать так:

  1. Пользователь вводит почтовый индекс
  2. Посмотрим, покроем ли мы это.
  3. отображать результаты.

Но я никогда раньше не работал с почтовыми индексами. Как бы я мог проверить, покрывают ли они это. Мне, очевидно, нужна какая-то база данных со списком почтовых индексов или областей, которые они охватывают. Но как бы я также проверил, действителен ли почтовый индекс.

Поиск почтового индекса, очевидно, предназначен для того, чтобы узнать, покрывает ли электрическая компания территорию пользователя.

Заранее спасибо.


person ryryan    schedule 27.05.2011    source источник
comment
Для какой страны это или для всего мира?   -  person RobertPitt    schedule 27.05.2011
comment
Извините, что не предоставил это. Это просто Великобритания. Например: RM12 4NU.   -  person ryryan    schedule 27.05.2011


Ответы (5)


Я думаю, что вместо того, чтобы использовать базу данных для поиска ваших результатов, вам было бы лучше посмотреть на геолокацию и использовать третью сторону для расчета всего за вас.

Google и Sony предоставляют платформы Geo Location

person RobertPitt    schedule 27.05.2011
comment
Но как мне это реализовать? Как это позволит мне увидеть, покрыт ли почтовый индекс или нет? - person ryryan; 27.05.2011

Мне, очевидно, нужна какая-то база данных со списком почтовых индексов или областей, которые они охватывают.

Да. Затем выполните простой поиск.

Но как бы я также проверил, действителен ли почтовый индекс.

Вам нужно будет иметь базу данных со списком всех возможных почтовых индексов и выполнить аналогичную проверку.

person Quentin    schedule 27.05.2011
comment
Я думаю, что он имеет в виду диапазоны почтовых индексов, такие как районы, а не улицы, геолокацию и т. д. - person RobertPitt; 27.05.2011
comment
Диапазоны могут быть не очень хорошими. Почтовые индексы в некоторых странах перемещаются, поэтому они часто не являются непрерывными. Полная база данных безопасна (если она актуальна). - person Quentin; 27.05.2011

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

person gnur    schedule 27.05.2011

Доступны базы данных с почтовыми индексами, вот голландская: http://www.postcode.nl/index/269/1/0/overzicht-producten-en-diensten.html

Вы можете проверить почтовый индекс, используя регулярное выражение.

person TJHeuvel    schedule 27.05.2011

Электрическая компания наверняка могла бы дать вам список почтовых индексов, которые они обслуживают? Тогда это простое сопоставление строк оттуда....

Я предполагаю, что вы интересуетесь Великобританией. Чтобы проверить, действителен ли почтовый индекс, возьмите бесплатный набор открытых данных CodePoint из ОС: http://www.ordnancesurvey.co.uk/oswebsite/products/code-point-open/

Вы можете перенести это в DG и перепроверить ввод пользователя. Просто помните, что эти данные основаны на PAF Royal Mail, поэтому не думайте, что они точны на 100%. Добавьте немного гибкости/отказоустойчивости в свой код.

Если клиент хочет покрыть определенный радиус, вы также можете использовать данные ОС для расчета расстояния ... и все это БЕСПЛАТНО, как и свобода, и бесплатное пиво :-)

В качестве первого шага вы можете проверить, имеет ли почтовый индекс допустимый формат: http://en.wikipedia.org/wiki/Postcodes_in_the_United_Kingdom#Validation — эта проверка предварительно отфильтрует вводимые данные.

person Adam    schedule 08.06.2011