PHP Mailing Address Formatter: Difference between revisions
From ivc wiki
Jump to navigationJump to search
(Created page with " This is a handy PHP function to properly format a mailing label for letters and packages. The get_address_format() method takes an array of all the mailing details and output...") |
No edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
This is a handy PHP function to properly format a mailing label for letters and packages. The get_address_format() method takes an array of all the mailing details and outputs a text string with the right formatting and line structure. | This is a handy PHP function to properly format a mailing label for letters and packages. The get_address_format() method takes an array of all the mailing details and outputs a text string with the right formatting and line structure. Includes most countries. | ||
For example: | For example: | ||
| Line 21: | Line 21: | ||
$address = trim($mailing->get_address_format($addr)); | $address = trim($mailing->get_address_format($addr)); | ||
// | // show mailing address | ||
echo $address; | |||
Code for class.shipping.php: | Code for class.shipping.php: | ||
| Line 64: | Line 64: | ||
"BR" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2" | "BR" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2" | ||
."\r\n!city, !postal_code\r\n!zone_name, !country_name_if", | ."\r\n!city, !postal_code\r\n!zone_name, !country_name_if", | ||
"BS" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2" | |||
."\r\n!city !zone_code !postal_code\r\n!country_name_if", | ."\r\n!city !zone_code !postal_code\r\n!country_name_if", | ||
"BW" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2" | "BW" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2" | ||
| Line 270: | Line 270: | ||
"ZW" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2" | "ZW" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2" | ||
."\r\n!city\r\n!country_name_if" | ."\r\n!city\r\n!country_name_if" | ||
) ; | ); | ||
// find country format - if not default to generic format | // find country format - if not default to generic format | ||
Latest revision as of 15:35, 17 December 2013
This is a handy PHP function to properly format a mailing label for letters and packages. The get_address_format() method takes an array of all the mailing details and outputs a text string with the right formatting and line structure. Includes most countries.
For example:
Firstname Lastname 99 Street Apartment 1A City, AB 54321 Country
Usage:
require_once('class.shipping.php');
$mailing = new Shipping();
// re-arrange elements if needed - $details is an array containing all the mailing information
$addr = array($details['company'], $details['firstname'], $details['lastname'], $details['street1'], $details['street2'],
$details['city'], $details['zone'], $details['state'], $details['zip'], $details['country'], $details['countrycode']);
// get properly formatted mailing address
$address = trim($mailing->get_address_format($addr));
// show mailing address
echo $address;
Code for class.shipping.php:
<?php
class Shipping {
public function get_address_format($address) {
$address_format = array(
"AD" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !postal_code\r\n!country_name_if",
"AE" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !zone_code\r\n!country_name_if",
"AF" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !zone_code !postal_code\r\n!country_name_if",
"AG" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !zone_code !postal_code\r\n!country_name_if",
"AM" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"AR" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !zone_name, !city\r\n!country_name_if",
"AT" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"AU" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"AW" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !postal_code\r\n!country_name_if",
"BA" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"BB" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"BE" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"BG" => "!first_name !last_name\r\n!company\r\n!street1\r\n!street2"
."\r\n!zone_name\r\n!postal_code !city !country_name_if",
"BH" => "!company\r\n!first_name !last_name\r\n!street1 !street2"
."\r\n!zone_name !postal_code\r\n\r\n!country_name_if",
"BM" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city - !postal_code\r\n!zone_code\r\n!country_name_if",
"BR" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !postal_code\r\n!zone_name, !country_name_if",
"BS" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"BW" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"BZ" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"CA" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !postal_code\r\n!zone_name, !country_name_if",
"CH" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"CL" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !postal_code\r\n!zone_name, !country_name_if",
"CN" => "!company\r\n!last_name !first_name\r\n!street1\r\n!street2\r\n"
."!city, !zone_name !postal_code\r\n!country_name_if",
"CO" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"CR" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"CZ" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"DE" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"DK" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"DO" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"DZ" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city\r\n!postal_code !zone_code\r\n!country_name_if",
"EC" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"EG" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_name !postal_code\r\n!country_name_if",
"EE" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!zone_name\r\n!country_name_if",
"ES" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"FI" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"FR" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"GB" => "!first_name !last_name\r\n!company\r\n!street1\r\n!street2"
."\r\n!city\r\n!postal_code\r\n!country_name_if",
"GE" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"GI" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"GL" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"GR" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code, !city\r\n!country_name_if",
"GU" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"HK" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!zone_name, !country_name_if",
"HR" => "!company\r\n!first_name !last_name\r\n!street1 !street2"
."\r\n!postal_code !zone_name\r\n!country_name_if",
"HU" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"ID" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !postal_code \r\n!country_name_if",
"IE" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !zone_name !postal_code\r\n!country_name_if",
"IL" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !postal_code\r\n!country_name_if",
"IM" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"IN" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city - !postal_code\r\n!zone_code\r\n!country_name_if",
"IQ" => "!first_name !last_name\r\n!zone_name !zone_code\r\n!street1\r\n!street2"
."!city\r\n!postal_code\r\n!country_name_if",
"IR" => "!first_name !last_name\r\n!country_name - !zone_name - !city,"
."\r\n!street1\r\n!street2\r\n!postal_code",
"IS" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"IT" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code, !city\r\n!zone_code\r\n!country_name_if",
"JM" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city - !postal_code\r\n !country_name_if",
"JP" => "!postal_code\r\n!zone_name !city\r\n!street1\r\n!street2\r\n"
."!company\r\n!last_name !first_name\r\n!country_name_if",
"KE" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"KH" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"KR" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"KZ" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"LC" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"LK" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"LT" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"LU" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"LV" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !postal_code\r\n!country_name_if",
"MA" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"MC" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"ME" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"MK" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"MM" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"MO" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"MT" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"MU" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"MY" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!zone_name\r\n!country_name_if",
"MX" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"MZ" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !zone_name\r\n!country_name_if",
"NC" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"NI" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"NG" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city - !postal_code\r\n!zone_code\r\n!country_name_if",
"NL" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"NO" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"NP" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"NZ" => "!first_name !last_name\r\n!company\r\n!street1\r\n!street2"
."\r\n!city !postal_code\r\n!country_name_if",
"OM" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city\r\n!zone_name, !country_name_if",
"PA" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"PE" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_name !postal_code\r\n!country_name_if",
"PH" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !zone_name !postal_code\r\n!country_name_if",
"PK" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !zone_code\r\n!country_name_if",
"PL" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !zone_code !postal_code\r\n!country_name_if",
"PR" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"PT" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !zone_name\r\n!country_name_if",
"RE" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"RO" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !postal_code\r\n!zone_name, !country_name_if",
"RS" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"RU" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"SA" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !postal_code\r\n!country_name_if",
"SC" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"SE" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code !city\r\n!country_name_if",
"SG" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!country_name, !postal_code",
"SI" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"SK" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"SN" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"SR" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"SV" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"TH" => "!first_name !last_name\r\n!company\r\n!street1\r\n!street2"
."\r\n!city, !zone_name !postal_code\r\n!country_name_if",
"TN" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"TR" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!postal_code, !city\r\n\r\n!country_name_if",
"TW" => "!company\r\n!last_name !first_name\r\n!street1\r\n!street2"
."\r\n!city, !zone_name !postal_code\r\n!country_name_if",
"TZ" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"UA" => "!country_name_if\r\n!zone_name\r\n!city\r\n!postal_code\r\n!street1\r\n!street2"
."\r\n!company\r\n!first_name !last_name",
"UK" => "!first_name !last_name\r\n!company\r\n!street1\r\n!street2"
."\r\n!city\r\n!postal_code\r\n!country_name_if",
"US" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !zone_code !postal_code\r\n!country_name_if",
"UY" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"VE" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"VG" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"VI" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city !zone_code !postal_code\r\n!country_name_if",
"VN" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city, !zone_code !postal_code\r\n!country_name_if",
"ZA" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city\r\n!postal_code\r\n!country_name_if",
"ZW" => "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city\r\n!country_name_if"
);
// find country format - if not default to generic format
if (!$format = $address_format[$address[count($address)-1]]) {
$format = "!company\r\n!first_name !last_name\r\n!street1\r\n!street2"
."\r\n!city\r\n!zone_code !zone_name\r\n!postal_code\r\n!country_name_if";
}
// replace placeholders - array structure must match
$mailing = str_replace(
array('!company','!first_name','!last_name','!street1','!street2','!city',
'!zone_code','!zone_name','!postal_code','!country_name_if'),
$address,
$format);
// remove empty lines in supplied data - fields not populated
$mailing = preg_replace('/(\r\n[ ]*\r\n)/s', "\r\n", $mailing);
return $mailing;
}
}