2012-11-18 14 views
5

Mam formularz HTML, który pobiera wejściowy adres wysyłki w częściach (adres, miejscowość, województwo, kod pocztowy i kraj). Formularz ten jest następnie przetwarzany w PHP.Formatowanie adresu wysyłkowego według kraju w PHP (lub Perlu)

Chciałbym przekonwertować ten adres na prawidłowy format dla kraju docelowego. Czy istnieją jakieś biblioteki lub usługi zewnętrzne, które mógłbym użyć do wykonania tej konwersji w PHP? Jeśli nie, czy mogę to zrobić za pomocą języka Perl lub podobnego?

Odpowiedz

0

Zastanowiłem się nad tym problemem i zdecydowałem, że plik/baza danych z szablonami adresów dla każdego kraju jest najlepszym rozwiązaniem dla mnie.

Jestem jednak pewien, że inne rozwiązania również będą działać.

+0

To dobry sposób. –

1

W języku Perl można użyć Class::Phrasebook. Korzystanie z niego jest bardzo łatwe.

use Class::Phrasebook; 
my $pb = new Class::Phrasebook($log, "test.xml"); 
$pb->load("NL"); # using Dutch as the language 
$phrase = $pb->get("ADDRESS", 
        { street => "Chaim Levanon", 
        number => 88, 
        city => "Tel Aviv" }); 

Teraz w twoim przypadku adres wysyłki będzie dynamiczny (który będzie dostarczony przez użytkownika), więc będziesz musiał wykonać więcej pracy. Możesz utworzyć plik XML, dodać słowniki dla wszystkich krajów, dodać frazy (adres, miasto, województwo, kod pocztowy) w każdym słowniku. Napisz dane dotyczące poszczególnych krajów w każdej frazie, np. "Adres uliczny: $ ulica" dla słownika języka angielskiego, "adresse: $ ulica" dla francuskiego słownika itp. A następnie przejdź do słownika według kraju użytkownika.

Więcej informacji pod adresem CPAN.

+0

Myślę, że @Eric pyta o format adresu. Na przykład niemieckie adresy mają kod pocztowy przed miastem/miastem, a adresy brytyjskie umieszczają je po. Republika Irlandii w ogóle nie używa kodów pocztowych. –

+0

Cholera! Źle zrozumiałem pytanie. Dzięki Richardowi za dostarczenie informacji o formacie kodu pocztowego, nie wiedziałem o tym. –

+0

Cóż, być może mam zły pomysł. Zobaczymy :-) –

2

Nigdy go nie używano, ale Geo::PostalAddress to dobry punkt wyjścia. Przydatne linki do przepisów, jeśli nic więcej.

Należy pamiętać, że różne firmy przewozowe (Fedex, DHL itp.) Mają własne zasady dotyczące formatu adresu.

Powiązane problemy