Skip to content

Instantly share code, notes, and snippets.

@GuilhermeRossato
Created July 23, 2021 18:37
Show Gist options
  • Save GuilhermeRossato/455da1910468bd2f216e7b5b3c70a29c to your computer and use it in GitHub Desktop.
Save GuilhermeRossato/455da1910468bd2f216e7b5b3c70a29c to your computer and use it in GitHub Desktop.
A PHP Function to retrieve state from zip code in Brazil / Função PHP para retornar a sigla do estado dado um CEP
<?php
function getBrazilStateFromZipCode($cep = '') {
$cepNum = intval(preg_replace("/[^0-9]/", "", $cep));
if ($cepNum >= 69900000 && $cepNum <= 69999999) {
return "AC";
} else if ($cepNum >= 57000000 && $cepNum <= 57999999) {
return "AL";
} else if ($cepNum >= 69000000 && $cepNum <= 69299999) {
return "AM";
} else if ($cepNum >= 69400000 && $cepNum <= 69899999) {
return "AM";
} else if ($cepNum >= 68900000 && $cepNum <= 68999999) {
return "AP";
} else if ($cepNum >= 40000000 && $cepNum <= 48999999) {
return "BA";
} else if ($cepNum >= 60000000 && $cepNum <= 63999999) {
return "CE";
} else if ($cepNum >= 70000000 && $cepNum <= 72799999) {
return "DF";
} else if ($cepNum >= 73000000 && $cepNum <= 73699999) {
return "DF";
} else if ($cepNum >= 29000000 && $cepNum <= 29999999) {
return "ES";
} else if ($cepNum >= 72800000 && $cepNum <= 72999999) {
return "GO";
} else if ($cepNum >= 73700000 && $cepNum <= 76799999) {
return "GO";
} else if ($cepNum >= 65000000 && $cepNum <= 65999999) {
return "MA";
} else if ($cepNum >= 30000000 && $cepNum <= 39999999) {
return "MG";
} else if ($cepNum >= 79000000 && $cepNum <= 79999999) {
return "MS";
} else if ($cepNum >= 78000000 && $cepNum <= 78899999) {
return "MT";
} else if ($cepNum >= 66000000 && $cepNum <= 68899999) {
return "PA";
} else if ($cepNum >= 58000000 && $cepNum <= 58999999) {
return "PB";
} else if ($cepNum >= 50000000 && $cepNum <= 56999999) {
return "PE";
} else if ($cepNum >= 64000000 && $cepNum <= 64999999) {
return "PI";
} else if ($cepNum >= 80000000 && $cepNum <= 87999999) {
return "PR";
} else if ($cepNum >= 20000000 && $cepNum <= 28999999) {
return "RJ";
} else if ($cepNum >= 59000000 && $cepNum <= 59999999) {
return "RN";
} else if ($cepNum >= 76800000 && $cepNum <= 76999999) {
return "RO";
} else if ($cepNum >= 69300000 && $cepNum <= 69399999) {
return "RR";
} else if ($cepNum >= 90000000 && $cepNum <= 99999999) {
return "RS";
} else if ($cepNum >= 88000000 && $cepNum <= 89999999) {
return "SC";
} else if ($cepNum >= 49000000 && $cepNum <= 49999999) {
return "SE";
} else if ($cepNum >= 01000000 && $cepNum <= 19999999) {
return "SP";
} else if ($cepNum >= 77000000 && $cepNum <= 77999999) {
return "TO";
} else {
throw new Exception("CEP nao esta dentro de uma faixa de estados do Brasil");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment