我应该使用什么来格式化地址国家/地区的邮政地址

bas*_*bas 5 php string-formatting street-address zend-framework2

我需要将邮政地址格式化为国家的格式,我正在寻找一些可以做到这一点的PHP库.我使用zend框架2使用Locale但不幸的是,此时似乎无法处理此问题.

examples

NL    RECIPIENT
      STREET_NAME HOUSE_NUMBER
      POSTAL_CODE LOCALITY
      COUNTRY

US    RECIPIENT
      HOUSE_NUMBER STREET_NAME [STREET_TYPE] [STREET_DIRECTION] [BUILDING] [FLOOR] [APARTMENT]
      LOCALITY PROVINCE_ABBREVIATION POSTAL_CODE
      COUNTRY

UK    RECIPIENT
      [FLOOR] [APARTMENT]
      [BUILDING]
      [HOUSE_NUMBER] STREET_NAME
      [DEPENDENT_LOCALITY]
      LOCALITY
      POSTAL_CODE
Run Code Online (Sandbox Code Playgroud)

(来源http://www.addressdoctor.com/en/countries-data/address-formats.html)

小智 1

我在制作国际网站时不得不面对同样的问题。

解决方案是打印由地址的所有连接部分组成的字符串,并在可能的情况下使用 Google Map API 正确设置地址格式。

var g = new google.maps.Geocoder();

function format_address(raw_address) {

    g.geocode({address: raw_address}, function (a, status) {


        if (status === "OK") {

            var splt = a[0].formatted_address.split(new RegExp(",", "g"));

            var i = 0;
            var res = "";


            for(i = 0; i < splt.length-1; i++)
                res += $.trim(splt[i]) + '<br/>';

            res +=  $.trim(splt[splt.length-1]);




            $('#address').html(res);
        }
        else if (status == "OVER_QUERY_LIMIT") {

                   //wait 500ms and try again

        }
        else { 
             $('#address').(raw_adress);

        }
    });
}
Run Code Online (Sandbox Code Playgroud)

  • 根据他们的服务条款,你必须出示谷歌地图才能使用他们的服务。 (2认同)