Text
|
|
|
|
<?php function checkZip($stateID, $zip5)
{
/*
ADAPTED FOR USE WITH MYSQL DB
CF. http://www.zend.com/codex.php?id=991&single=1
CREATE TABLE codes_state (
stateID int(10) unsigned NOT NULL auto_increment,
state varchar(100) NOT NULL default '',
abbr char(2) NOT NULL default '',
PRIMARY KEY (stateID),
UNIQUE KEY state (state)
);
--
-- Dumping data for table `codes_state`
--
INSERT INTO codes_state VALUES (15, 'Alabama', 'AL');
INSERT INTO codes_state VALUES (16, 'Alaska', 'AK');
INSERT INTO codes_state VALUES (17, 'Arizona', 'AZ');
INSERT INTO codes_state VALUES (18, 'Arkansas', 'AR');
INSERT INTO codes_state VALUES (19, 'California', 'CA');
INSERT INTO codes_state VALUES (20, 'Colorado', 'CO');
INSERT INTO codes_state VALUES (21, 'Connecticut', 'CT');
INSERT INTO codes_state VALUES (22, 'Delaware', 'DE');
INSERT INTO codes_state VALUES (23, 'District of Columbia', 'DC');
INSERT INTO codes_state VALUES (24, 'Florida', 'FL');
INSERT INTO codes_state VALUES (25, 'Georgia', 'GA');
INSERT INTO codes_state VALUES (26, 'Hawaii', 'HI');
INSERT INTO codes_state VALUES (27, 'Idaho', 'ID');
INSERT INTO codes_state VALUES (28, 'Illinois', 'IL');
INSERT INTO codes_state VALUES (29, 'Indiana', 'IN');
INSERT INTO codes_state VALUES (30, 'Iowa', 'IA');
INSERT INTO codes_state VALUES (31, 'Kansas', 'KS');
INSERT INTO codes_state VALUES (32, 'Kentucky', 'KY');
INSERT INTO codes_state VALUES (33, 'Louisiana', 'LA');
INSERT INTO codes_state VALUES (34, 'Maine', 'ME');
INSERT INTO codes_state VALUES (35, 'Maryland', 'MD');
INSERT INTO codes_state VALUES (36, 'Massachusetts', 'MA');
INSERT INTO codes_state VALUES (37, 'Michigan', 'MI');
INSERT INTO codes_state VALUES (38, 'Minnesota', 'MN');
INSERT INTO codes_state VALUES (39, 'Mississippi', 'MS');
INSERT INTO codes_state VALUES (40, 'Missouri', 'MO');
INSERT INTO codes_state VALUES (41, 'Montana', 'MT');
INSERT INTO codes_state VALUES (42, 'Nebraska', 'NE');
INSERT INTO codes_state VALUES (43, 'Nevada', 'NV');
INSERT INTO codes_state VALUES (44, 'New Hampshire', 'NH');
INSERT INTO codes_state VALUES (45, 'New Jersey', 'NJ');
INSERT INTO codes_state VALUES (46, 'New Mexico', 'NM');
INSERT INTO codes_state VALUES (47, 'New York', 'NY');
INSERT INTO codes_state VALUES (48, 'North Carolina', 'NC');
INSERT INTO codes_state VALUES (49, 'North Dakota', 'ND');
INSERT INTO codes_state VALUES (50, 'Ohio', 'OH');
INSERT INTO codes_state VALUES (51, 'Oklahoma', 'OK');
INSERT INTO codes_state VALUES (52, 'Oregon', 'OR');
INSERT INTO codes_state VALUES (53, 'Pennsylvania', 'PA');
INSERT INTO codes_state VALUES (54, 'Rhode Island', 'RI');
INSERT INTO codes_state VALUES (55, 'South Carolina', 'SC');
INSERT INTO codes_state VALUES (56, 'South Dakota', 'SD');
INSERT INTO codes_state VALUES (57, 'Tennessee', 'TN');
INSERT INTO codes_state VALUES (58, 'Texas', 'TX');
INSERT INTO codes_state VALUES (59, 'Utah', 'UT');
INSERT INTO codes_state VALUES (60, 'Vermont', 'VT');
INSERT INTO codes_state VALUES (61, 'Virginia', 'VA');
INSERT INTO codes_state VALUES (62, 'Washington', 'WA');
INSERT INTO codes_state VALUES (63, 'West Virginia', 'WV');
INSERT INTO codes_state VALUES (64, 'Wisconsin', 'WI');
INSERT INTO codes_state VALUES (65, 'Wyoming', 'WY');
*/
$allstates = array (
"16" => array ("9950099929"),
"15" => array ("3500036999"),
"17" => array ("7160072999", "7550275505"),
"18" => array ("8500086599"),
"19" => array ("9000096199"),
"20" => array ("8000081699"),
"21" => array ("0600006999"),
"23" => array ("2000020099", "2020020599"),
"22" => array ("1970019999"),
"24" => array ("3200033999", "3410034999"),
"25" => array ("3000031999"),
"26" => array ("9670096798", "9680096899"),
"30" => array ("5000052999"),
"27" => array ("8320083899"),
"28" => array ("6000062999"),
"29" => array ("4600047999"),
"31" => array ("6600067999"),
"32" => array ("4000042799", "4527545275"),
"33" => array ("7000071499", "7174971749"),
"36" => array ("0100002799"),
"35" => array ("2033120331", "2060021999"),
"34" => array ("0380103801", "0380403804", "0390004999"),
"37" => array ("4800049999"),
"38" => array ("5500056799"),
"41" => array ("6300065899"),
"39" => array ("3860039799"),
"41" => array ("5900059999"),
"48" => array ("2700028999"),
"49" => array ("5800058899"),
"42" => array ("6800069399"),
"44" => array ("0300003803", "0380903899"),
"45" => array ("0700008999"),
"46" => array ("8700088499"),
"43" => array ("8900089899"),
"47" => array ("0040000599", "0639006390", "0900014999"),
"50" => array ("4300045999"),
"51" => array ("7300073199", "7340074999"),
"52" => array ("9700097999"),
"53" => array ("1500019699"),
"54" => array ("0280002999", "0637906379"),
"55" => array ("2900029999"),
"56" => array ("5700057799"),
"57" => array ("3700038599", "7239572395"),
"58" => array ("7330073399", "7394973949", "7500079999", "8850188599"),
"59" => array ("8400084799"),
"61" => array ("2010520199", "2030120301", "2037020370", "2200024699"),
"60" => array ("0500005999"),
"62" => array ("9800099499"),
"64" => array ("4993649936", "5300054999"),
"63" => array ("2470026899"),
"65" => array ("8200083199")
);
$goodzip = '00000';
foreach($allstates[$stateID] as $ziprange) {
if ( ($zip5 >= substr($ziprange, 0, 5)) && ($zip5 <= substr($ziprange,5)) ) { $goodzip = $zip5; }
}
RETURN $goodzip; //return a harmless zip as punt test }
?>
|
|
|
Usage Example
|
print checkZip("15", "36989")."<br>"; // TRUE
print checkZip("23", "20597")."<br>"; // TRUE
print checkZip("61", "73949")."<br>"; // FALSE
print checkZip("61", "22015")."<br>"; // TRUE
print checkZip("65", "82210")."<br>"; // TRUE
print checkZip("12", "90210")."<br>"; // FALSE
|
|
|
Rate This Script
|
|
|
|