用PHP(或Perl)按国家格式化发货地址

用PHP(或Perl)按国家格式化发货地址,php,perl,street-address,Php,Perl,Street Address,我有一个HTML表单,它以部分形式输入发货地址(街道地址、城市、州/省、邮政编码和国家)。然后使用PHP处理此表单 我想把这个地址转换成目的国的正确格式。是否有任何库或外部服务可用于在PHP中进行此转换?如果没有,我可以用Perl或类似的语言吗?在Perl中,您可以使用Class::Phrasebook。使用它很容易 use Class::Phrasebook; my $pb = new Class::Phrasebook($log, "test.xml"); $pb->load("NL"

我有一个HTML表单,它以部分形式输入发货地址(街道地址、城市、州/省、邮政编码和国家)。然后使用PHP处理此表单


我想把这个地址转换成目的国的正确格式。是否有任何库或外部服务可用于在PHP中进行此转换?如果没有,我可以用Perl或类似的语言吗?

在Perl中,您可以使用
Class::Phrasebook
。使用它很容易

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" } );
现在,在您的情况下,配送地址将是动态的(由用户提供),因此您需要做更多的工作。您可以创建XML文件,为所有国家/地区添加词典,在每个词典中添加短语(街道地址、城市、州/省、邮政编码)。在每个短语中写下特定于国家的数据,如英语词典的“街道地址:$Street”,法语词典的“地址:$Street”等,然后根据用户的国家访问词典

更多信息,请访问。

从未使用过它,但这是一个很好的起点。如果没有其他内容,则链接到法规


请注意,不同的航运公司(联邦快递、DHL等)都有自己的地址格式规则。

我考虑过这个问题,并决定为每个国家列出地址模板的文件/数据库是我的最佳解决方案


不过,我确信其他解决方案也会奏效。

我认为@Eric正在询问地址格式。例如,德国地址的邮政编码位于城镇/城市之前,英国地址的邮政编码位于城镇/城市之后。爱尔兰共和国根本不使用邮政编码。该死!我误解了这个问题。谢谢Richard提供关于邮政编码格式的信息,我不知道。