2012-11-18 27 views
5

Tôi có biểu mẫu HTML có địa chỉ giao hàng đầu vào ở các phần (địa chỉ đường phố, thành phố, tiểu bang/tỉnh, mã bưu chính và quốc gia). Biểu mẫu này sau đó được xử lý bằng PHP.Định dạng địa chỉ giao hàng theo quốc gia bằng PHP (hoặc Perl)

Tôi muốn chuyển đổi địa chỉ này thành định dạng chính xác cho quốc gia đến. Có bất kỳ thư viện hoặc dịch vụ bên ngoài nào mà tôi có thể sử dụng để thực hiện chuyển đổi này trong PHP không? Nếu không, tôi có thể làm điều đó với Perl hoặc một ngôn ngữ tương tự?

Trả lời

0

Tôi đã nghĩ về vấn đề này và tôi đã quyết định rằng một tệp/cơ sở dữ liệu có mẫu địa chỉ được liệt kê cho mỗi quốc gia là giải pháp tốt nhất cho tôi.

Tuy nhiên, tôi chắc chắn rằng các giải pháp khác được đưa ra sẽ hoạt động tốt.

+0

Đó là một cách tốt. –

1

Trong Perl bạn có thể sử dụng Class::Phrasebook. Sử dụng nó rất dễ dàng.

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" }); 

Bây giờ trong trường hợp địa chỉ giao hàng sẽ được động (do người dùng cung cấp), bạn sẽ phải thực hiện thêm một số công việc. Bạn có thể tạo một tệp XML, thêm từ điển cho tất cả các quốc gia, thêm cụm từ (địa chỉ đường phố, thành phố, tiểu bang/tỉnh, mã bưu chính) vào từng từ điển. Ghi dữ liệu quốc gia cụ thể vào từng cụm từ như "Địa chỉ đường phố: $ đường phố" cho từ điển tiếng Anh, "địa chỉ: đường phố đô la" cho từ điển tiếng Pháp, v.v. Sau đó truy cập từ điển theo quốc gia của người dùng.

Thông tin khác tại CPAN.

+0

Tôi nghĩ @Eric đang hỏi về định dạng địa chỉ. Ví dụ: địa chỉ tiếng Đức có mã bưu chính trước thành phố/thị trấn và địa chỉ ở Vương quốc Anh sẽ đặt địa chỉ đó sau đó. Cộng hòa Ireland không sử dụng mã bưu điện. –

+0

Chết tiệt! Tôi hiểu lầm câu hỏi. Cảm ơn Richard đã cung cấp thông tin về định dạng mã bưu điện, tôi không biết điều đó. –

+0

Vâng, có lẽ tôi đã có ý tưởng sai lầm. Chúng ta sẽ thấy :-) –

2

Không bao giờ sử dụng nhưng Geo::PostalAddress là điểm khởi đầu tốt. Các liên kết hữu ích với các quy định nếu không có gì khác.

Lưu ý rằng các công ty vận chuyển khác nhau (Fedex, DHL, vv) có quy tắc riêng cho định dạng địa chỉ.

Các vấn đề liên quan