【问题标题】:Formatting a Shipping Address by Country in PHP (or Perl)在 PHP(或 Perl)中按国家/地区格式化送货地址
【发布时间】:2012-11-06 11:15:59
【问题描述】:

我有一个 HTML 表单,其中包含部分输入的送货地址(街道地址、城市、州/省、邮政编码和国家/地区)。然后使用 PHP 处理此表单。

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

【问题讨论】:

    标签: php perl street-address


    【解决方案1】:

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

    但是,我确信给出的其他解决方案也可以。

    【讨论】:

      【解决方案2】:

      从未使用过它,但Geo::PostalAddress 是一个很好的起点。有用的法规链接。

      请注意,不同的运输公司(Fedex、DHL 等)有自己的地址格式规则。

      【讨论】:

        【解决方案3】:

        在 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 address: $street”用于英语词典,“adresse: $street”用于法语词典等。然后根据用户的国家/地区访问词典。

        更多信息请访问CPAN

        【讨论】:

        • 我认为@Eric 是在询问地址格式。例如,德国地址的邮政编码位于城镇/城市之前,而英国地址则位于其后。爱尔兰共和国根本不使用邮政编码。
        • 该死!我误解了这个问题。感谢 Richard 提供有关邮政编码格式的信息,我不知道。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-25
        • 2023-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-14
        • 2020-04-13
        相关资源
        最近更新 更多