Zend - The PHP Company




Text

Add Code


Alternative Zip Code Checker  

Type: code fragment
Added by: rmullen
Entered: 24/03/2005
Last modified: 03/12/2004
Rating: - (fewer than 3 votes)
Views: 4006
An Alternative to zip checker from this code gallery [ codex.php?id=991&single=1] which you can drop into any app with the DB already set up for you. Tests zip and allows you to punt with a default bad zip of 00000.


<?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($ziprange05)) && ($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





Search



This Category All Categories