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 предоставят платформи за географско местоположение

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 и да проверите въведеното от потребителя. Само не забравяйте, че тези данни се основават на Royal Mail PAF, така че не приемайте, че са 100% точни. Вградете малко гъвкавост/толерантност към грешки във вашия код.

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

Като първа стъпка можете да проверите дали пощенският код е във валиден формат: http://en.wikipedia.org/wiki/Postcodes_in_the_United_Kingdom#Validation - тази проверка ще филтрира предварително въведените данни вместо вас.

person Adam    schedule 08.06.2011